打印

数据收发问题

[复制链接]
846|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋天落叶|  楼主 | 2012-5-18 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我创建的套接字是基于TCP的,
我想将一组不同类型的数据放入一个Buf里面,发送给服务器端,并将它们显示出来,
服务器端接受到数据之后也发送一组不同类型的数据给客户端,当然也是放在一个Buf里面进行发送,
问题是我假如定义
char a='1';  
short b=12;
char sendBuf[100];
memcpy(&sendBuf[0],&a,1);
memcpy(&sendBuf[1],&b,2);
客户端:
send(sockClient,(char*)sendBuf,100,0);
服务器端:
recv(sockConn,(char *)recvBuf,100,0);
printf("%s ",recvBuf);
最后显示出来的结果是错误的。
谁可以给个具体代码。

相关帖子

沙发
txcy| | 2012-5-18 21:05 | 只看该作者
你接收的是二进制数据,又不是字符串,用%s打印出来的当然是错的

使用特权

评论回复
板凳
无冕之王| | 2012-5-18 21:13 | 只看该作者
可以定义一个结构体
Msg
{
int a;
char b[1024];
};
然后发送客户端:
Msg msg;
Msg* pmsg=&msg;
pmsg->a=10;
memcpy(pmsg,"123",strlen("123"));

send(sockClient,(char*)sendBuf,sizeof(Msg),0);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝