在Linux中的套接字编程中我需要在套接字中写入数据,但我不知道套接字是打开还是关闭。如何知道该套接字是打开并关闭而未读取的?检查连接是否打开或关闭?(在Linux中为C)
printf("befor read%d\n", n);
bzero(buffer, MAX_SIZE_BUFFER);
n = read(sockfd, buffer, MAX_SIZE_BUFFER - 1);
printf("after read%d\n", n);
if (n <= 0)
{
break;
}
printf("befor write%d, s: %d \n", n , sockfd);
n = write(newsockfd, buffer, n);
if (n <= 0)
{
break;
}
我从sockfd读取,我确信这个连接是打开的。何时在newsockfd中写缓冲区我不知道newsockfd是打开还是关闭如何检查newsockfd是否已关闭?
我知道问题。在书写连接中间关闭。例如在500个连接关闭并写入程序时写入1024个数据。如何避免这一点?
这会起作用,另一种选择是使用'sigaction'来忽略'SIGPIPE'(将其处理程序设置为'SIG_IGN')。 – caf 2009-11-25 12:42:56