虽然我是套接字编程的新手,当我正在编写一个简单的 tcp 服务器-客户端程序时,我发现基于流的 api 使用起来并不方便。
我的程序很简单:
- 客户端连接到服务器
- 服务端不断向客户端发送消息,间隔出乎意料
- 客户端接收消息并根据消息中包含的数据进行工作
但是,使用基于流的 api,我必须:
- 定义消息定界符/分隔符
- 使用
while
循环从流中读取数据 - 连接所有字节,尝试找到分隔符
- 如果存在分隔符,则拆分数据,提取消息
这是很多工作,甚至比我的程序的整个逻辑还要多,所以我想知道是否有一个库可以为我做上面的事情,有了这样的库,我可以像这样编程:
// Server
TcpListenerEx server = new TcpListenerEx();
TcpClientEx client = server.Accept();
client.SendMessage(new StringMessage("hello world"));
// Client
TcpClientEx client = new TcpClientEx();
client.Connect("localhost", 8989);
while (true) {
IMessage message = client.ReadMesage();
// Do work acording to message
}
欢迎任何建议,谢谢。