当前位置: 代码迷 >> 综合 >> Socket(2)——SOCKET网络编程:Socket相关概念
  详细解决方案

Socket(2)——SOCKET网络编程:Socket相关概念

热度:45   发布时间:2023-10-01 21:32:52.0

1、socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其实就是两个程序通信用的)。 

2、socket非常类似于电话插座。以一个电话网为例。电话的通话双方相当于相互通信的2个程序,电话号码就是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求。对方假如在场并空闲,拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤消连接。

3、在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。

4、例如:http 使用80端口,  ftp使用21端口, smtp 23端口

  • http(Hyper Text Transport Protocol)超文本传输协议。
  • FTP(File Transfer Protocol)文件传输协议。
  • SMTP(Simple Mail Transfer Protocol)简单邮件传输协议。

5、Socket有两种类型:

  • 流式Socket(STREAM): 是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低;
  • 数据报式Socket(DATAGRAM): 是一种无连接的Socket,对应于无连接的UDP服务应用。不安全(丢失,顺序混乱,在接收端要分析重排及要求重发),但效率高。
  相关解决方案