socket 套接字常见的有3种类型:
1:SOCK_STREAM。流式套接字,用于TCP连接,提供面向连接。可靠的数据传输服务。数据无差错。无重复的发送。且按发送顺序接收
2:SOCK_DGRAM。数据报式套接字。用于UDP连接。提供无连接服务。数据包以独立包形式发送。不提供无错保证。数据可能丢失或重复。并且接收顺序混乱
3:SOCK_RAM.原始套接字
基于TCP(面向连接)的socket编程:
服务端:
1:创建套接字:socket
2:将套接字绑定到一个本地地址和端口上:bind
3:将套接字设置为监听模式,准备接收客户请求:listen
4:等待客户请求到来:当请求到来后,接受连接请求,返回一个新的对应于此连接的套接字:accept
5:用返回的套接字和客户端进行通信:send/recv
6:返回,等待另一个客户请求
7:关闭套接字 :closeSocket
客户端:
1:创建套接字:socket
2:向服务器发出连接请求:connect
3:和服务器端进行通信:send/recv
4:关闭套接字:closeSocket
基于UDP(面向无连接)的socket编程:
服务器端:
1:创建套接字:socket
2:将套接字绑定到一个本地地址和端口上:bind
3:等待接收数据:recvfrom
4:关闭套接字:closeSocket
客户端:
1:创建套接字:socket
2:向服务器发送数据:sendto
3:关闭套接字:closeSocket
htonl:将IP地址转换为U_Long类型
htons:转换为U_Short类型。一般用在端口号
inet_ntoa:将u_long类型的地址转换为点分十进制的IP形式