不知道哪位高人对两种语言的SOCKET编程熟悉
服务器用的是VC2003.net,客户端用的是VC6
建立连接正常
客户发送数据,服务器C#接收的ASCII编码正常
就是服务器在用ASCII编码后的数据发送给客户端时
如果客户端只接收一个char recmsg[4];
memset(recmsg,0,sizeof(char)*4);
recv(m_socket,recmsg,4,0);
如果服务器发送"0001"
客户端接收后用MessageBox显示recmsg居然是 0001?C
而且如果服务器如果先前接收过客户端发送的数据(比如"xyz")
再只发送"0001",客户端接收后用MessageBox显示的居然是 0001xyz但是如果把上边的recmsg[4]改成recmsg[64](把上边的4全替换为64)
用MessageBox显示却又正常 是 0001
虽然改成64后没有问题,但是始终想不明白为何4就是不行呢,而且明明收的是4位,怎么会显示
诸如0001?C 0001xyz这么多位呢
希望高手能给予解答,感激不尽,因为就是这个4害我困惑和调试了老长一段时间