【发布时间】:2014-06-22 08:11:15
【问题描述】:
我在从客户端到服务器以及从服务器到客户端的发送和接收双精度/整数方面遇到问题。 此刻,我有:
客户:
cin>>xp;
send( master,(char*)&xp,sizeof(xp),0);
服务器:
int valread, nr;
char * buffer;
valread = recv(s,(char *)&nr,sizeof(buffer),0);
它可以工作,但是当我从服务器发送到客户端时,我做错了。
我在服务器上:
int lol;
lol=5;
send(s, (char*)&lol, sizeof(lol), 0);
我想要这个 int 在客户端:
bytesRecv = recv(master,(char*)&nr,sizeof(buffer),0);
我不知道为什么它不起作用:/ 当我在客户端 cout/printf 这个 int 时,它是 0 或 9,2555... 请帮忙:/
【问题讨论】:
-
听起来像endianness 问题。
-
为什么是
sizeof (buffer)?为什么在发送整数时关心char *占用多少字节? -
你使用什么协议?为什么忽略
send和recv的返回值?如果您只收到一个字节会怎样? -
这是我的错。我有这个: bytesRecv = recv(mainSocket,(char*)&nr,sizeof(nr),0);但这仍然行不通。我使用 tcp