tcp socket通信 Round 2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcp socket通信 Round 2相关的知识,希望对你有一定的参考价值。

  • server端未创建socket;server端创建socket;server创建socket并bind:此时client端尝试connect不会阻塞(未作设置),但errno为111,即

#define ECONNREFUSED 111 /* Connection refused */

  • server端创建socket,调用bind,listen,未调用accept,此时client尝试connect不会阻塞,errno为0即正常
  • 使用epoll时,如果先调用close,再对fd做操作,如DEL,epoll_ctl报错
    • 调用close之后,无需再在epoll里对fd作操作(存疑)
    • 先epoll_ctl删除fd,再调用close
  • setsocketopt函数使用SO_REUSEADDR仍报错地址已在使用(centos),改为使用SO_REUSEPORT工作正常
  • centos上绑定地址后,要开端口,命令如下
iptables -I INPUT -p tcp --dport 1234 -j ACCEPT
  • client端调用close后,不能再对fd调用connect。需再次调用socket,对此时的fd调用connect。   

以上是关于tcp socket通信 Round 2的主要内容,如果未能解决你的问题,请参考以下文章

18 11 12 网络通信 tcp

Python 之 Socket编程(TCP/UDP)

ModBus(RTU TCP UDP通信)及利用socket通信(DTU)实现Modbus-RTU通信协议

游戏开发实战Unity使用Socket通信实现简单的多人聊天室(万字详解 | 网络 | TCP | 通信 | Mirror | Networking)

游戏开发实战Unity使用Socket通信实现简单的多人聊天室(万字详解 | 网络 | TCP | 通信 | Mirror | Networking)

Java系列讲座一:TCP方式Socket通信案例讲解