【发布时间】:2012-06-14 17:52:13
【问题描述】:
我有一段代码:
while(1) {
if(recvfrom(*val, buffer, 1024, MSG_PEEK, NULL, NULL)==-1) {
perror("recv");
exit(1);
} else printf("recv msgpeek\n");
if(*(int*)buffer>5) {
if(recvfrom(*val, buffer, 1024, 0, NULL, NULL)==-1) {
perror("recv");
exit(1);
} else printf("recv\n");
if(*(int*)buffer==6) {
printf("%d\n", *(int*)(buffer+sizeof(int)+30));
printf("%s\n", (char*)buffer+sizeof(int));
}
}
这是客户计划的一部分。我正在从服务器向该客户端发送消息,并且我注意到当客户端收到此消息时,它们已连接。我正在使用 SOCK_STREAM 类型的套接字。有谁知道如何避免连接消息?
【问题讨论】:
-
不清楚你到底想避免什么。
-
我试图避免连接消息,我想在发送它们时获取它们 - 作为两条单独的消息。
-
TCP,我在创建套接字时使用 SOCK_STREAM
-
如果这是 TCP,你为什么使用
recvfrom?尝试改用recv。 -
@Adam 现在,我正在使用它,我只是想以这种方式解决问题。
标签: c sockets network-programming