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。   
上一篇:苦熬一个月,Netty权威指南:I-O-多路复用技术吐血整理


下一篇:epoll详解