什么是soket
socket 被翻译为“套接字”,是计算机之间进行通信的一种方式或约定。实现不同虚拟机和计算机(包括普通PC机,嵌入式主机和PLC)之间的通信。Socket本质是编程接口API,对TCP/IP的封装。web,QQ,微信都是基于Socket 的典型应用。
Socket位于应用层和传输层之间。
Socket的编程方式
Socket起源于Unix,而Unix/Linux的基本哲学之一就是“一切皆文件”,都可以用“打开->读写->关闭”的模式来操作。Socket 就是该模式的一个实现,socket是一种特殊的文件,socket函数就是对其进行的操作(打开,读写IO,关闭)。因此socket也提供了类似于连接,关闭连接,发送接收等方法。
数据传输方式
常用的有两种:STREAM 和 DGRAM
服务器端的程序编写步骤
- 调用socket()函数创建一个用于通信的套接字。
- 给已经创建好的套接字绑定一个端口号,通过设置网络套接口地址和调用bind()函数来实现。
- 调用listen()函数使套接字成为一个监听套接字。
- 调用accept()函数来接收客户端的连接,就可以和客户端通信了。(该函数是阻塞式的)
- 处理客户端的连接请求。
- 终止连接。
客户端的程序编写步骤
- 调用socket()函数创建一个用于通信的套接字。
- 通过设置套接字地址结构,说明客户端与之通信的服务器的IP地址和端口号。
- 调用connect()函数来建立与服务器的连接。
- 调用读写函数发送或者接收数据。
- 终止连接。