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,客户端就可以呼过去,然后服务端根据来电地址,再回复信息。

最新文章

  1. 国内版Office 365和Azure AAD绑定的问题及解决方案
  2. PHP基础知识之————PHP Web脚本中使用FFmpeg
  3. U盘容量减少的解决办法
  4. UESTC 915 方老师的分身II --最短路变形
  5. 黑马程序员——JAVA基础之String和StringBuffer
  6. Color About——Second
  7. backbone案例
  8. 文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡(Windows10 /Windows8.1)
  9. CCNA毕业测试
  10. Python中文
  11. (转)rabbitMQ基础知识及命令语句
  12. Asp.net 项目部署的两个问题
  13. oh-my-zsh: 让终端飞
  14. ansible 剧本
  15. mysql 8.0 ~ innodb与变量优化
  16. Spark Core
  17. php中的接口interface
  18. C++指针与引用
  19. The type org.springframework.jms.JmsException cannot be resolved报错解决
  20. Java基础(二):基本数据类型和变量类型

热门文章

  1. python的socket解析
  2. <发条游戏设计>粗翻——第一部分 理论(一)
  3. Python:匿名函数lambda的函数用法和排序用法
  4. python序列化与反序列化(json与pickle)
  5. [转载]在termux上安装Kali Linux
  6. 团队Github实战训练
  7. django+vue
  8. 【原创】大数据基础之Impala(3)部分调优
  9. VUE环境项目搭建以及简单的运行例子
  10. Unity中各种格式计时器