检测tcp的指定端口是否连通
需求场景:在一次面试中问到的题目,在云计算时代,需要管理成百上千台服务器,需要定时检测服务器上一个tcp网络服务是否正常。例如检测各个web服务器的连通性,编写一个检测工具,能够快速的检测服务的连通性,要求检测工具能够同时建立多个连接。
使用技术:Linux下C语言,网络IO非阻塞,IO多路复用技术
需要弄清楚的问题:
(1)tcp三次握手完成,即可以判断出服务的连通。只需要调用connect函数
(2)默认请求下,网络套接字是阻塞的,如何使用非阻塞的套接字
(3)connect如何设置非阻塞,如何控制超时时间
(4)使用单进程发起多个连接,如何使用select处理多个连接
(5)如何使用多线程或多进程来处理