【发布时间】:2010-11-22 21:03:36
【问题描述】:
我正在尝试通过网络与使用简单协议的应用程序进行交互。我必须发送一个看起来像这样的标题:
2 字节 = 数据长度(包括请求类型)
1 字节 = 请求类型
我将两个参数都作为整数:
private static void WriteHeader(Stream buf, int length, int requestType) {
buf.Write(BitConverter.GetBytes(length), 0, 2);
buf.WriteByte((byte)requestType);
}
我这样称呼它:
byte[] outBuf = new byte[256];
using (MemoryStream outStream = new MemoryStream(outBuf)) {
// Socket connection stuff here
WriteHeader(outStream, 1, 110);
sock.Send(outBuf);
// Receive stuff here, never returns
}
调用此方法或通过套接字发送outBuf 时,我没有收到任何异常,但网络应用程序从不响应。不过,我可以用其他程序查询它,所以我相当肯定这是因为我的标题没有正确写入。
我在写值时做错了吗?
编辑:添加了 MemoryStream 代码
【问题讨论】:
-
将长度转换为
(short)length
标签: c# stream byte bitconverter