关于C#套接字编程的问题

来源:百度知道 编辑:UC知道 时间:2024/07/16 11:28:10
写了一段语句:
yte[] bbb = new Byte[256];
client.Receive(bbb, bbb.Length, 0);
string ccc = System.Text.Encoding.BigEndianUnicode.GetString(bbb);
richTextBox3.AppendText(ccc + "\r\n");
我想问一下,如何显示出Byte[3]后面的语句?
就是把接收到的Byte[3]后面的内容AppendText到richTextBox3中
还有就是在client.Receive(bbb, bbb.Length, 0); 后可以用bbb[0] == "", bbb[2] = ""来判断前三位的值吗?我试过了好像不行,那要怎么用呢?
System.Text.Encoding.BigEndianUnicode.GetString(bbb,3,ccc.Length-3);用不了
用richTextBox3.AppendText(ccc + "\r\n");后文本框中出现了乱码
到底怎么样才能查看前三个字符,是不是bb[0]这类呢?要不是什么?
我试过了使用6,但服务端和客户端连接后,两个程序就马上关掉了,怎么回事?

bbb = bbb.Skip(2).ToArray();

System.Text.Encoding.BigEndianUnicode.GetString(bbb);
改为 System.Text.Encoding.BigEndianUnicode.GetString(bbb,3,ccc.Length-3);即可。
***************************************
因为你的语句写错了参数:
client.Receive(bbb,0,bbb.Length);
**************************
client不是Socket类对象吗?
不管怎样我的不能跳过前三个字节吗?
System.Text.Encoding.BigEndianUnicode.GetString(bbb,3,ccc.Length-3);
*******************************
你想一下,同样的解码,从第3号字节开始取就是乱码?那只能说明,你说的前三个字节可能不正确,而拆断了编码,你确信是三个字节?而不是三个字符?那样的话,一般应该从6号字节开始解码。