一、Socket概述
Socket是进行网络编程的类,通过Socket可以在两台计算机之间进行网络通讯。比如,QQ软件和QQ服务器之间的通讯就是基于Socket的网络通讯,这个过程的实现大概是这样,用户甲像用户乙发送消息,甲的消息通过Socket发送给服务器,服务器接收到甲的消息后,在通过Socket推送给乙,这样就完成了一次简单聊天通讯。
Socket编程实现网络通信主要包括客户端和服务端两部分。
服务器端流程主要有以下几个步骤:创建套接字(socket)、服务绑定(bind)、服务侦听(listen)、处理新到连接(accept)、数据收发(rec/send)、关闭套接字(close)。
客户端流程主要有以下几个步骤:客户端套接字创建(socket)、发起连接(connect)、数据收发(rec/send)、关闭套接字(close)。
二、Socket网络通讯工作原理
Socket连接可以使用TCP或者是UDP两种传送层协议,如果使用TCP协议,那么建立起来的Socket连接就是一个TCP连接,接下来就以一个流程图来展示基于TCP协议的Socket连接的工作原理,如下图。