在不间断的建立连接过程中,每一次的连接断开会经过TCP状态的time_wait状态,这个状态的作用就是延迟一段时间,然后保证下一次连接的不会被当成上一次的连接。所以第二次的连接建立时如果没有经过一段时间第二次的连接会失败,报错会显示address in use这儿就是time_wait状态。你如果是在不同主机上进行不间断的连接肯定会出现上面的报错。
write和read函数最好加上判断读写是否成功的判断:if(write(com_fd, buf, len) <= 0)...
如不是此原因,需要查server的代码。
以前我遇到过这种情况,好像是将isten语句的位置不对,导致断开后无法建立新的连接