问题描述
vc++,socket通讯,16进制数据发送问题!可以发送字符串,但不能发送16进制数据,如"7e015d56a1"server是以16进制接收,如server要收到“7e015d56a1",客户端应怎样发送!谢谢!
解决方案
解决方案二:
16进制数如果是整数,转换为16进制串,接收收后转回。inta=12;strings=a.ToString("X2");intb=int.Parse(s,System.Globalization.NumberStyles.HexNumber);MessageBox.Show(b.ToString("X2"));
解决方案三:
有道理
解决方案四:
不知你是用那種方式做Socket,以.NET的方式大略弄給你看。intsendLength;array<Byte>^bytes=gcnewarry<Byte>(1024);//假設你要傳長度是5的資料//下面是要傳的資料bytes[0]=0x7e;bytes[1]=0x01;bytes[2]=0x5d;bytes[3]=0x56;bytes[4]=0xa1;sendLength=5;//資料的長度//假設ConnectSocket已宣告好。//這是以.NETSocket方式傳資料,BeginSendTo是傳資料的函式ConnectSocket->BeginSendTo(bytes,0,sendLength,SocketFlags::None,IPPoint,nullptr,nullptr);
傳送和接收的方式都是一個一個字元來送或收的。
时间: 2024-10-28 09:29:29