C#中的异步套接字 - 了解您的客户

时间:2012-10-30 15:29:18

标签: c# sockets asynchronous client-server

我确信这有一个简单的解决方法,但是现在我似乎无法找到一个优雅的解决方案。我已经构建了一个ASync C#服务器应用程序,它接受多个客户端并很好地处理它们,但是为了继续,我需要能够确定哪些客户端连接到我的服务器(将只有两个客户端,它们都做不同的事情)。

当我的程序接受这些客户端时,我希望服务器知道客户端地址,并指示哪个客户端可能存储在一个小列表中。

所以我猜我在问什么,是否有一个简单的方法,当客户端连接时,向服务器发送预定义的消息,让它知道客户端应用程序到哪个地址?

由于

2 个答案:

答案 0 :(得分:1)

有很多方法。

最简单的方法之一是为每个客户端应用程序设置不同的端口。另一种方式是“连接”(在TCP握手之后)是在交换任何数据之前发送标识应用程序的消息。另一种选择是为每个请求/回复添加标题,说明应用程序并存储该文件。

答案 1 :(得分:1)

您可以通过套接字自由发送所有类型的数据。

要解决这个问题,请在客户端和服务器之间创建一些协议。

例如,在连接时发送第一条消息以将客户端标识到服务器。 从那里继续这两者之间的正常对话。

服务器可以接受显示它的消息和存储,甚至在第一条消息不包含约定信息时拒绝客户端。