网络编程-SOCKET开发之----3. socket通信工作流程
2024-10-19 08:48:20
1. TCP的socket通信流程
服务端
1)socket----创建socket对象。
2)bind----绑定本机ip+port。
3)listen----监听来电,若在监听到来电,则建立起连接。
4)accept----再创建一个socket对象给其收发消息。原因是现实中服务端都是面对多个客户端,那么为了区分各个客户端,则每个客户端都需再分配一个socket对象进行收发消息。
5)read、write----就是收发消息了。
客户端
1)socket----创建socket对象。
2)connect----根据服务端ip+port,发起连接请求。
3)write、read----建立连接后,就可发收消息了。
注意服务端需要绑定ip+port,而客户端不需要。原因是:i)对于服务端,有以下特点:实际开发中是面对多个客户端的、需长时间提供服务、被动的等待被呼叫,这就要求服务端的ip+port固定,否则无法为客户端提供稳定服务;ii)对于客户端,其位置可能多变,并且是主动呼叫服务端,这样就导致其ip+port可能会经常变化,但这没关系,只要知道服务端的ip+port,客户端就可以呼过去,然后服务端根据来电地址,再回复信息。
最新文章
- 国内版Office 365和Azure AAD绑定的问题及解决方案
- PHP基础知识之————PHP Web脚本中使用FFmpeg
- U盘容量减少的解决办法
- UESTC 915 方老师的分身II --最短路变形
- 黑马程序员——JAVA基础之String和StringBuffer
- Color About——Second
- backbone案例
- 文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡(Windows10 /Windows8.1)
- CCNA毕业测试
- Python中文
- (转)rabbitMQ基础知识及命令语句
- Asp.net 项目部署的两个问题
- oh-my-zsh: 让终端飞
- ansible 剧本
- mysql 8.0 ~ innodb与变量优化
- Spark Core
- php中的接口interface
- C++指针与引用
- The type org.springframework.jms.JmsException cannot be resolved报错解决
- Java基础(二):基本数据类型和变量类型