套接字原理----socket

运行在不同机器上的进程彼此通过向套接字发送报文来进行通信。每个进程好比是一座房子,进程的套接字就好比是一个门。套接字是应用进程和TCP之间的门,应用程序开发者可以控制套接字的应用层那一侧所有的东西,但是不能控制运输层那一侧。

  服务器为了能对客户机程序发起连接作出响应,应满足:

  第一、服务器程序不能处于休眠状态;

  第二、服务器程序必须有某种套接字。


socket通信流程:


1、服务器根据地址类型(ipv4,ipv6)、socket类型、协议创建socket

2、服务器为socket绑定ip地址和端口号

3、服务器socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的socket并没有被打开

4、客户端创建socket

5、客户端打开socket,根据服务器ip地址和端口号试图连接服务器socket

6、服务器socket接收到客户端socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候socket进入阻塞状态,所谓阻塞即accept()方法一直到客户端返回连接信息后才返回,开始接收下一个客户端谅解请求

7、客户端连接成功,向服务器发送连接状态信息

8、服务器accept方法返回,连接成功

9、客户端向socket写入信息

10、服务器读取信息

11、客户端关闭

12、服务器端关闭

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,800评论 19 139
  • 一、网络各个协议:TCP/IP、SOCKET、HTTP等 网络七层由下往上分别为物理层、数据链路层、网络层、传输层...
    杯水救车薪阅读 6,754评论 0 17
  • 去年在豆瓣上参加过一个活动,叫“未来搜索器”。宣传语上写着 未来的你,或许是个作家,豆瓣读书将发布你的新书公告;也...
    cornsweet阅读 4,210评论 0 1
  • 通常实验室的gpu资源有限,而tensorflow默认使用gpu0,会造成冲突。如何设置只使用部分gpu资源呢,使...
    Ra1nyHouse阅读 3,134评论 0 0
  • 老贾师傅正蹲在墙角下呼哧呼哧的生炉子,院子里飘着辣眼睛的烟子,脑门上密密的汗水渗出,他的头发大都已经叛逃了,此刻显...
    时间草原_2009阅读 2,206评论 0 0

友情链接更多精彩内容