用VC的socket编程,发送数据为16位

用VC的socket编程客户端,发送数据为16位,定义的发送数据缓冲区是unsignedshort,可是send函数缓冲区是constchar*,没法转换怎么办... 用VC的socket编程客户端,发送数据为16位,定义的发送数据缓冲区是unsigned short,可是send函数缓冲区是const char*,没法转换怎么办 展开
 我来答
屍鬼封盡
2014-04-23 · TA获得超过325个赞
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:77.8万
展开全部
这个简单,直接发送即可:
方法一(C++风格):
unsigned short buffer []; //这是你的buffer(缓冲区)
send ( client , reinterpret_cast<char *>(buffer) , sizeof ( buffer ) , 0 );

方法二(C风格):
unsigned short buffer[];
send ( client , (char *)buffer , sizeof ( buffer ) , 0 );

接收的时候也是,直接接收即可:
unsigned short recvData[];
recv ( server , reinterprect_cast<char *>(recvData) , 接收的大小 , 0 );

有什么不懂请追问^_^

祝你学习愉快^_^
追问
你好,现在是客户端能给网络模块传数了,可是接受不到网络模块给客户端的数,我定义的char recvbuff[500],recv(m_Socket,recvbuff,500,0);单步错误在这显示recvbuff nCXX0069: Error: variable needs stack frame 哪里有问题啊,recvbuff是很大的负值,帮忙分析分析a,谢谢
追答
还需要解答吗?如果需要,请你把改动以后的代码贴出来,只有这些信息是没法帮你解答的。
匿名用户
2014-04-23
展开全部
可以先将unsigned short 转换成CString用Format 然后把CString转换成const char* 用GetBUffer(0); 试试?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式