网络传输
服务器
+底层使用TCP协议进行连接建立的一个工具类(套接字工具类)
TCP和UDP
TCP协议(重点)
+TCP在传输数据之前,需要建立连接,所有TCP都是一个面向连接的可靠的、安全的、有效的传输协议
UDP协议
+用户报文协议
套接字工具类:ServerSocket
使用方法:
//后面括号里的为端口
ServerSocket ss = new ServerSocket(10003);
使用后:
启动端口变为Listening状态
接受客户端发送的请求我们操作这个请求使用的是Socket对象
格式:
Socket s = ss.accept(); //sccept接受
使用流读服务器
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = br.readLine();
System.out.println(str);
客户端
电脑有65535个端口 (查看方法[在cmd黑框中]:netstat -a)
作为客户端的存在,需要向外界服务器发送请求
客户端的TCP数据传输操作的工具是Socket
//括号内为IP地址和端口
//查看IP的方法(在cmd黑框中:ipconfig)
Socket s = new Socket("192.168.1.82",10003);
/当代码运行到这的时候,Java操作网卡尝试发起一个远程连接
//连接到对应的IP地址和端口号上,如果能连接(对方是监听状态)
//则随机选择一个端口,向对象发起一个请求,并执行完成三次握手
Socket s = new Socket("192.168.1.82",10003);
System.out.println("连接已建立");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
//需要阻塞,方便测试,要不然程序直接结束
使用流写出
OutputStream os = s.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.println(str);
pw.flush();
str = scanner.next();
//最后阻塞,方便测试