【发布时间】:2012-04-29 14:18:47
【问题描述】:
我正在尝试使用套接字从我的桌面应用程序发送简单的字符串消息,这里是 服务器端代码,它将数据发送到客户端:
swSenderSender = new StreamWriter(tcpClients[i].GetStream());
swSenderSender.WriteLine(From + " says: " + Message);
swSenderSender.Flush();
swSenderSender = null;
我有 Metro 应用程序 - 客户端代码 使用 DataReader:
var dr = new DataReader(socket.InputStream);
var stringHeader = await dr.LoadAsync(4);
int strLength = dr.ReadInt32();
uint numStrBytes = await dr.LoadAsync((uint)strLength);
string msg = dr.ReadString(numStrBytes);
这就是问题所在。 DataReader 需要知道发送的字符串有多长。另一方面,StreamWriter 不能与简单的字符串/或带有新通道的字符串不同。如何连接这两个代码?或者也许还有另一种方法可以做到这一点。请帮忙。我不知道如何格式化数据才能在客户端和服务器之间发送。
【问题讨论】:
标签: c# sockets stream client-server windows-runtime