GNU/Linux应用程序开发学习笔记(三)套接字编程
套接字编程的各级要素: `主机接口:网络地址ip `协议:特定的协议(TCP & UDP) `端口:client或server的进程终点 套接字 简单的说,套接字就是两个应用程序之间通信管道的终点,这个管道可以唯一的标志一条链接,而应用程序则通过套接字来操作这个管道通信。 通信过程 要想使不同主机的进程通信,就必须使用套接字,套接字是用socket()函数创建,如果需要C/S模式,则需要把server的套接字与地址和端口绑定起来,使用bind(),当上述操作完成后,便可使用listen()来监听这个端口,如果有其他程序来connect,那么server将会调用accept()来接受这个申请并为其服务。client是调用connect()来建立与server之间的连接,这时会使用传说中的三次握手来建立一条数据链接。当连接被建立后,server与client便可以通信了,通信可以使用read()/write(),send()/recv(),sendto()/recvfrom()等一些函数来实现,但是不同的函数作用和使用位置是不同的。当数据传送完后,可以调用close()来关闭server与client之间的链接。上述过程就是不同主机之间进程通信的大致过程,当然这只是一个概要,其中的细节还是很多的。 创建和清除套接字 创建套接字的原型如下 int socket(int domain,