Winsock的send()工作很奇怪

时间:2011-03-26 07:44:09

标签: c++ visual-studio visual-c++ winsock winsock2

我正在尝试编写一个接受连接并向客户端发送消息的实验性服务器程序。我让客户端连接,但我似乎无法发送消息而不做非常奇怪的事情。

例如,在此剪辑中,conn是连接的套接字:

int sendRes;
char buf[1024];
strcpy_s(buf,"Testing!");
sendRes = send(conn,buf,strlen(buf),0);
好吧,当我通过Telnet连接它时,它什么也没显示,只是退出。但是,当我将行cout << sendRes添加到此片段的末尾时,它会突然运行并在Telnet上显示 Testing!,就像它应该的那样。

所以,我想问一个知道的人,为什么这样做呢?

1 个答案:

答案 0 :(得分:1)

可能是telnet客户端本身正在等待行结束标记显示传入缓冲区吗?

尝试编写自己的客户端并使用recv查看是否有任何内容。

然后,新行可能与它没有任何关系,因为cout位于本地。

尝试检查RFC854以获取完整的telnet规范(或者,再次,只需编写自己的客户端)。