gpt4 book ai didi

c++ - 从套接字中的字符缓冲区转换为整数

转载 作者:行者123 更新时间:2023-11-28 07:23:19 25 4
gpt4 key购买 nike

客户端:

char buf[1024];  
int packetAmt = fileSize/PACKETSIZE;
cout<<"Number of packet amounts: "<<packetAmt<<endl;

// send packet amount to serv
ibytessent=send(s,itoa(packetAmt,buf,10),sizeof(buf),0);

服务器端:

char szbuffer[1024];
if((ibytesrecv = recv(s1,szbuffer,sizeof(szbuffer),0)) == SOCKET_ERROR)
throw "Receive error in server program\n";
cout << "This is the number of packets sent: " << szbuffer << endl;
packetAmt=atoi(szbuffer);
cout << "This is the number of packets sent: " << packetAmt<< endl;

将 char 数组转换为整数后返回的整数与发送的字符串不匹配。但是打印字符串将返回正确的值。我也尝试过使用 strtol 函数。会不会是整型转字符数组出错?

最佳答案

atoi 将在到达第一个非数字字符时停止。如果接收缓冲区中没有终止符,它可能会超过预期的数字结尾。看来您也没有在发件人的缓冲区中放置终止符。

关于c++ - 从套接字中的字符缓冲区转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com