您的位置:程序门 -> .net技术 -> c#



c# socket 抢分题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


c# socket 抢分题[已结贴,结贴人:shino_wu]
发表于:2007-01-17 11:07:31 楼主
c#客户端与c服务端(linux)的通信问题
如何确保一列字符串,如:0x3f   0x5b   0x30   0x30   0x30   0x30   0x00     0x??
最后一位为前7位的逻辑与的和。
在c#端如何处理,才能使数据准确的传输到服务器端。
发表于:2007-01-17 11:14:271楼 得分:0
把前面6位数加起来然后放到第7位。发送回去。这样不行?
发表于:2007-01-17 11:24:532楼 得分:0
这是叫做什么呢验证码来的?
单片机作过这个,移位做吧
发表于:2007-01-17 11:27:453楼 得分:0
我问的是如何处理。以什么类型去发送、
发表于:2007-01-17 11:32:354楼 得分:30
以byte[]去发送
发表于:2007-01-17 11:34:185楼 得分:0
关键是你服务器端的接收方法你没说清楚,关键就在这里,

我估计你服务器那边是一次接8个字节的长度,

如果这样传送 "0x3f   0x5b   0x30   0x30   0x30   0x30   0x00     0x?? "这样的字符串肯定是超标了。。

那就得把前7个数和最后一个数放在一个长度为8的字节数组里。

但你得保证最后的和不会超过byte的上限吧
发表于:2007-01-17 11:44:086楼 得分:0
服务器是8个字节来接受的。
发表于:2007-01-17 12:47:087楼 得分:20
那就用这样

byte[]   buffsend   =   new   byte[8];

buffsend[0]   =   0x3f;
buffsend[1]   =   0x5b;
...
buffsend[7]   =     前7个和;

socket.send(buffsend,   0,   buffsend.length,   socketflags.none);
发表于:2007-01-17 13:48:578楼 得分:0
up
发表于:2007-01-17 14:06:299楼 得分:0
?
发表于:2007-01-17 14:18:3110楼 得分:0
如果逻辑与再取反就是crc8校验了
发表于:2007-01-17 14:20:3711楼 得分:0
buffsend[7]=0;
for(int   i=0;i <7;i++)
    buffsend[7]+=buffsend[i];


快速检索

最新资讯
热门点击