一、什么是socket
专业术语:利用标准 UNIX file descriptors(文件描述符)与其他程序沟通的一种方式。
通俗描述:socket像是两个程序之间打电话用的“电话机”。举个例子,假如程序A和程序B聊天,比如微信和office,它们需要一套打电话的工具,而socket就是这套工具。
二、socket的核心功能
一个程序,例如服务器,先插上电话线(创建socket),然后坐等别人打过来(监听)。另一个程序,比如我的电脑,用socket拨号,连接对方的地址和端口,而后就可以发送消息了。
三、socket也是一个文件?
在计算机里面,所有的东西都能够当作文件来操作,比如键盘输入是“文件”,屏幕输出是“文件”,甚至网络连接也能假装是个“文件”。所以socket被分配了一个文件编号(文件描述符),程序可以像读写文件一样,用read()
和write()
收发数据。
四、总结一下
socket = 通信的端点,就像电话机上的听筒,负责连上对方、说话、听回复、挂断。