所以我得到了一个小型聊天功能的任务,其中多个客户端应该能够连接到服务器并与之通信,然后服务器应该能够选择想要与之通信的人。 (从下拉列表或其他内容)。
到目前为止,在一些教程的帮助下,我能够做到的是,客户端可以连接到服务器并与之通信,但仅此而已。服务器无法回传。
我对此非常陌生,对C#和TCP / IP知之甚少。
https://gist.github.com/4565988< - 包含客户端和服务器的代码。
所以我需要帮助的是服务器回复不同客户端以及客户端从服务器接收消息的方法。
感谢任何帮助!
最诚挚的问候,Fredrik
答案 0 :(得分:0)
关于起点,我会看看WCF Duplex Services。 Duplex允许您订阅服务并使用双向通信发送更新。
基本上,您可以使用以下几种方法将服务器创建为WCF服务:getclients
和sendMessage
。然后,客户端可以订阅该服务并(在连接时)获取其他订户(您提供给UI)的列表,然后将消息发送回服务(然后使用双工将其发送给任何人)它需要)。
只要您没有使用套接字,这比创建协议和管理连接列表要容易得多。还有一些使用WCF作为code project上可用的聊天媒体的示例。
答案 1 :(得分:0)
对于TCP知识,我调查了Barbara Heckler的视频,在那里她展示了这种服务器的简要实现。不幸的是在Java中,但是非常有用。
我在0-15分钟的基础知识(UDP)和15-40分钟用于TCP连接,以及为什么需要多线程来进行TCP而不是UDP。
答案 2 :(得分:0)
这很简单,真的。您成功提取并用于读取客户端发送内容的TCP流也可以写入以便发回一些内容,因此您所要做的就是移动连接并将对象流式传输到某种类型的共享集合中当你想发送东西时,你的服务器端发送逻辑可以得到它。同样,在客户端中,您将在TCP流上发出读取以读取服务器发送的内容。