Tag: tcp

如何检测TCP套接字断开(使用C Berkeley套接字)

我正在使用循环从交流Berkeley套接字读出消息,但我无法检测套接字何时断开连接,所以我接受新的连接。 请帮忙 while(true) { bzero(buffer,256); n = read(newsockfd,buffer,255); printf(“%s\n”,buffer); }

处理来自recv()TCP的部分返回

我一直在阅读Beej的网络编程指南,以了解TCP连接。 在其中一个示例中,简单TCP流客户端的客户端代码如下所示: if ((numbytes = recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) { perror(“recv”); exit(1); } buf[numbytes] = ‘\0’; printf(“Client: received ‘%s’\n”, buf); close(sockfd); 我将缓冲区设置为小于我发送的总字节数。 我不太确定如何获得其他字节。 我是否必须循环使用recv()直到收到’\0’ ? *关于服务器端的注意事项我也在实现他的sendall()函数,所以它应该实际上是将所有内容发送到客户端。 另见6.1。 指南中的简单流服务器 。

使用SO_REUSEADDR?

我已经使用SO_REUSEADDR让我的服务器终止重启而没有抱怨套接字已经在使用中。 我想知道是否还有SO_REUSEADDR其他用途? 有没有人使用套接字选项除了上述目的?