用VC的socket编程,发送数据为16位
用VC的socket编程客户端,发送数据为16位,定义的发送数据缓冲区是unsignedshort,可是send函数缓冲区是constchar*,没法转换怎么办...
用VC的socket编程客户端,发送数据为16位,定义的发送数据缓冲区是unsigned short,可是send函数缓冲区是const char*,没法转换怎么办
展开
展开全部
这个简单,直接发送即可:
方法一(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 );
有什么不懂请追问^_^
祝你学习愉快^_^
方法一(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); 试试?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询