【发布时间】:2014-05-17 04:46:17
【问题描述】:
我有一个 TCP 协议服务器-客户端程序。
与很多人不同,我没有收到错误,因为我的发送函数没有发送应有的字节数。 我的问题是因为 recv() 函数捕获了一些奇怪的字符。我对它们进行了十六进制转储,它们往往是负数(我猜大于 4 位长)或不是字母数字的。(一直出现的是 \8 = ◘)。
我使用的功能是:
bool Socket::Send(char* msg){
if ((send(sockfd, msg, strlen(msg), 0)) == SOCKET_ERROR){
Close();
return false;
}
return true;
}
int Socket::Receive(char* msg, int maxlen){
int recvResult;
if ((recvResult = recv(sockfd, msg, maxlen, 0)) == SOCKET_ERROR){
Close();
}
return recvResult;
}
我检查过,发送的所有内容都正常。我的意思是,我将它写入一个文件并检查它,它是好的。
还有什么我应该考虑的吗?我做错了什么?
【问题讨论】:
-
在声明变量时,是否有某种险恶的力量阻止您初始化变量?一定是因为您在
if语句中为它们赋值。 -
如何打印缓冲区?