Linux 中的网络编程通过socket实现,socket是一种文件描述符,其类型有:
(1)流式套接字(SOCK_STREAM)可以提供可靠的面向连接的通讯流,使用TCP协议。TCP协议保证了数据传输的正确性和顺序性。
(2)数据报套接字(SOCK_DGRAM)数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错,使用数据报文协议UDP。
(3)原始套接字(SOCK_RAW)允许使用IP协议,主要用于新的网络协议的测试。
TCP网络程序设计:
UDP网络程序设计:
(第二张流程图为啥传不上呢)
口述如下:
服务器端:1、创建一个socket,用socket();
2、绑定IP地址、端口等信息到socket上,用函数bind();
3、循环接收数据,用recvfrom()
4、关闭网络连接 close()
客户端: 1、创建一个socket, 用socket()函数;
2、绑定IP地址、端口等信息到socket上,用bind()函数, 这步可不选
3、设置服务器的IP地址、端口等属性
4、发送数据,用函数sendto();
5、关闭网络连接 close().