Socket:
socket "插座"的意思,作为进程通信机制,用于描述IP地址和端口,是一个通信链的句柄(两个程序通信用的)
在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应不同的服务
http使用80端口 ftp使用 21 端口 smtp使用23端口
Socket有两种类型
1.Stream
一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,效率低
2.DataGram 数据报式
一种无连接的socket,对应物连接的UDP服务应用,不安全(丢失,顺序混乱,在接受端要分析重排及要求重发),但效率高
Socket一般运用模式(服务端 和客户端)
服务端Socket
一个负责接受客户端连接请求,不负责与客户端通信
每成功接收到一个客户端的连接请求,并产生一个对应的套接字
客户端Socket
必须指定要连接的服务端地址和端口
通过创建一个Socket对象来初始化一个到服务器端的TCP连接
Socket通信过程
服务端:
申请一个socket
绑定到一个IP和端口
开启监听,等待连接
客户端:
申请一个socket
连接服务器 需指定一个IP和端口
服务器端接到连接请求后,产生一个新的socket与客户端建立连接并进行通讯,原监听Socket 继续监听