-1

所以我得到了一个任务来做一个小的聊天功能,多个客户端应该能够连接到服务器并与之通信,然后服务器应该能够选择它想要与之通信的人。(从下拉列表或其他东西)。

到目前为止,在一些教程的帮助下,我能够做到的是客户端可以连接到服务器并与之通信,但仅此而已。服务器无法返回通信。

我对此很陌生,并且在 C# 和 TCP/IP 方面的知识有限。

https://gist.github.com/4565988 <-包含客户端和服务器的代码。

所以我需要帮助的是服务器回复不同客户端以及客户端从服务器接收消息的一种方式。

任何帮助表示赞赏!

最好的问候,弗雷德里克

4

3 回答 3

0

对于 TCP 知识,我查看了 Barbara Heckler 的视频,其中她展示了这种服务器的简要实现。不幸的是,在 Java 中,但仍然非常有用。

我为基础知识(UDP)和 15-40 分钟进行了基础分析(UDP),以及为什么 TCP 需要多线程但 UDP 不需要多线程。

http://www.youtube.com/watch?v=5QzNHEcLp10

于 2013-01-18T18:33:33.383 回答
0

关于起点,我会看看WCF Duplex Services。双工允许您订阅服务并使用双向通信发送更新。

本质上,您可以使用以下几种方法将服务器创建为 WCF 服务:getclientssendMessage. 然后,客户端可以从那里订阅服务并(在连接时)获取其他订阅者的列表(您提供给 UI),然后将消息发送回服务(然后使用双工将其发送给任何人它需要)。

只要您不习惯使用套接字,这将比创建协议和管理连接列表容易得多。在代码项目中也有使用 WCF 作为聊天媒介的示例。

于 2013-01-18T18:19:16.937 回答
0

这很简单,真的。您成功提取并用于读取客户端发送的内容的 TCP 流也可以写入以发回某些内容,因此您所要做的就是将连接和流对象移出到某种共享集合中,所以你的服务器端发送逻辑可以在它想要发送东西时得到它。同样,在客户端中,您将发出对 TCP 流的读取以读取服务器发送的内容。

于 2013-01-18T21:45:03.377 回答