【发布时间】:2014-11-15 11:54:33
【问题描述】:
你好,我需要从socket读取所有数据,有这样的功能
void handle_socket(int sockfd) {
int len;
int n;
char buf[1024];
n = recv(sockfd, buf, sizeof(buf) - 1, 0);
while (n > 0) {
buf[n] = '\0';
printf("%s", buf);
n = recv(sockfd, buf, sizeof(buf) - 1, 0);
}
printf("Exiting\n");
}
但我在终端看不到Exiting,我做错了什么?
插座sockfd = socket(AF_INET, SOCK_STREAM, 0);
PS 我需要从 POP3 服务器读取响应我试图找到 \r\n.\r\n 但我不能确定这个字符串会在一个缓冲区中(例如 \r\n 在第一个缓冲区和.\r\n 在第 2 次p>
【问题讨论】:
-
客户端是否在某个时候关闭了套接字?
-
@Mat 是的,从程序退出后