Socket 是应用层与 TCP / IP 协议通信的中间软件抽象层,它是一组接口
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。
UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快
常用的 Socket 类型有两种:
1.流式 Socket ( SOCK_STREAM )
面向连接的 Socket,针对于面向连接的 TCP 服务应用
2.数据报式
无连接的 Socket,对应于无连接的 UDP 服务应用
socket 调用库函数主要有:
1.创建套接字
Socket ( af, type ,protocol )
2.建立地址和套接字的联系
bind ( socked , local addr , addrlen)
3.服务器端侦听客户端的请求
listen ( Sockid , quenlen )
4.建立服务器 / 客户端的连接 (面向连接 TCP )
客户端请求连接
Connect ( socked , destaddr ,addrlen)
5.服务器端等待从编号为 Sockid 的 Socket 上接收客户端连接请求
newsockid = accept ( Socked ,Clientaddr , paddrlen )
6.发送 / 接收数据
面向连接:
send ( socked , buff , bufflen )
recv ( )
7.面向无连接:
sendto ( socked , buff ,…, addrlen )
recvfrom ( )
8.释放套接字
close ( sockid )