网络编程-小结
1-----------------------------------------------------基本知识----------------------------------------------------------------
网络编程的三要素
A:IP地址
a:点分十进制
b:IP地址的组成
c:IP地址的分类
d:dos命令
e:InetAddress
B:端口
是应用程序的标识。范围:0-65535。其中0-1024不建议使用。
C:协议
(1)TCP/IP(传输控制协议 Transmission Control Protocol),互联网传输协议。建立数据通道,无限制,效率低,可靠
(2)UDP (用户数据报协议 User Datagram Protocol),数据打包,有限制,不连接,效率高,不可靠
(3)HTTP 超文本传输协议 默认端口:80
(4)HTTPS 安全超级文本传输协议 默认端口:443
(5)FTP(File Transfer Protocol)文件传输协议
2-----------------------------------------------------基本代码----------------------------------------------------------------
1、TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输,效率会稍低。
服务端
public class ServerSoc {
public static void main(String[] args) throws IOException {
/**
* 基于TCP协议的Socket通信,实现用户登录,服务端
*/
//1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
ServerSocket serverSocket =new ServerSocket(11111);//1024-65535的某个端口 、
//2、调用accept()方法开始监听,等待客户端的连接
while(true){
Socket socket = serverSocket.accept();
//3、获取输入流,并读取客户端信息
InputStream is = socket.getInputStream();
InputStreamReader isr =new InputStreamReader(is);
BufferedReader br =new BufferedReader(isr);
String info =null;
while((info=br.readLine())!=null){
System.out.println("我是服务器,客户端说:"+info);
}
socket.shutdownInput();//关闭输入流
//4、获取输出流,响应客户端的请求
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("欢迎您!");
pw.flush();
}
}
}
客户端
public class ClientSoc {
public static void main(String[] args) {
try {
//客户端
//1、创建客户端Socket,指定服务器地址和端口
Socket socket =new Socket("127.0.0.1",11111);
//2、获取输出流,向服务器端发送信息
OutputStream os = socket.getOutputStream();//字节输出流
PrintWriter pw =new PrintWriter(os);//将输出流包装成打印流
pw.write("用户名:admin;密码:123");
pw.flush();
socket.shutdownOutput();
//3、获取输入流,并读取服务器端的响应信息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String info = null;
while((info=br.readLine())!= null){
System.out.println("我是客户端,服务器说:"+info);
}
}catch (IOException e) {
e.printStackTrace();
}
}
}