【发布时间】:2010-10-27 11:25:09
【问题描述】:
我正在尝试在概念上为我用 c#(客户端和服务器)编写的客户端-服务器套接字应用程序模型工作。我的服务器需要同时处理多个客户端,最好是同时处理来自客户端的多个请求。我已经为我的通信设计了一个容器,我将在每条消息的开头发送一个固定长度的标头,其中包含(除其他外)消息的长度。我有一些使用 c# 进行套接字编程的经验,所以我很喜欢使用异步套接字。
从概念上讲,我遇到的主要问题是我需要客户端和服务器都能够随时接收消息。客户端将建立一个连接,并保持“登录”状态(就像一个 IM 客户端),它需要在任意时间接收数据并在任意时间发出请求。作为协议的一部分,我还希望接收对每个请求的响应(无论是从服务器到客户端,还是从客户端到服务器)。
如果可能,我希望能够使用单个套接字。我相信我可以使用两个套接字来完成这项工作,一个用于发出服务器->客户端请求,一个用于客户端->服务器请求,但我不希望处理两个端口/连接的额外复杂性。但是,使用单个套接字时,我不确定如何管理发送请求并在可以交错时获取响应。
我在搜索中找不到任何类似服务器或客户端的示例。感谢任何提供任何想法的人。
【问题讨论】:
标签: c# sockets model tcp client-server