我正在尝试通过使用简单协议的网络与应用程序进行交互。我必须发送一个看起来像这样的标题:
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 代码