一,创建socket通讯的步骤
1,服务器端创建一个serversocket,通过accept方法等待客户端连接;
2,客户端创建一个socket请求连接服务器端;
3,服务器端接收到客户端的连接请求,并创建一个新的socket与该客户端建立专线连接;
4,刚才建立连接的两个socket是在一个线程上对话的;
5,服务器端开始等待新的连接请求。
二,数据传输
1,TCP协议
面向连接的可靠传输协议,得到顺序无差错的数据流。支持双向数据传输,即发送方和接收方都可以进行发送和接收操作。
建立TCP连接需要3次握手,第一次:客户端发送到服务器端,等待服务器端确认;第二次:服务器端接收到连接请求,确认客户端后向客户端发送请求;第三次:客户端接收到服务器端发送信息后确认。注意的是,在3次握手期间是没有数据传输的,只是完成TCP连接。连接完成以后才开始进行数据传输实现通讯,服务器端和客户端都可以通过断开连接。
2,UDP协议
与TCP相反,TCP面向连接,UDP没有连接状态,数据独立,包括完整的源地址和目的地址,难以保证数据传输的内容时间和实现。
3,TCP协议和UDP协议的区别
TCP:
①面向连接,必须创建连接才能通讯;
②数据传输大小没有限制;
③TCP是一个可靠协议,确保接收方完全正确接收发送方发送的数据。
UDP:
①非连接通讯,每个数据报文中都有完整的地址信息;
②大小限制,64KB以内;
③不可靠,接收数据无法确定顺序,内容时间和完成。
三,Java实现socket网络编程(demo)
1,基于TCP协议
TODO 后面再提供demo代码