0

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

例如,在这个片段中,conn是一个连接的套接字:

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

所以,我想问问知道的人,为什么会这样?

4

1 回答 1

1

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

尝试编写您自己的客户端并使用recv它来查看是否有任何东西传入。

再说一次,新线可能与它没有任何关系,因为它cout在本地。

尝试检查RFC854以获得完整的 telnet 规范(或者,再次简单地编写您自己的客户端)。

于 2011-03-26T07:51:56.443 回答