时间:2010-07-23 21:31:28

标签: c++ windows sockets winsock

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

答案 2 :(得分:1)

答案 3 :(得分:0)

data += recvbuf;

这不起作用。 string::operator+=无法知道已收到多少字节。这个函数需要一个C风格的字符串,而不是一个任意的字节块。

但是你也有一个非常基本的设计问题。您希望您的程序能够说出IRC协议,但它不包含该协议的任何实现。例如,IRC协议指定了消息分隔的特定方式,并且您没有任何代码可以解析这些消息。

因此,从读取到写入的过渡基本上是由TCP定时的变幻莫测以及服务器选择如何分割其输出所确定的随机时间。由于服务器被允许对其输出进行分段,但它很高兴(协议很清楚客户端不能依赖分段来解析协议,而是必须依赖于面向行的性质),程序的行为是不可预测的。

相关问题