2010-05-29 93 views
0

我目前正在尝试做的是使用silverlight为irc创建一个非常基本的网络聊天。.NET TCP客户机/服务器通信问题

基本上我如何做到这一点是有一个tcp服务器侦听来自silverlight的连接。当客户端连接时,它会创建一个到irc的新连接,并通过服务器应用程序将数据传递到客户端/ irc。

我已经得到它为一个客户端连接工作正常,但只要两个(或更多)客户端连接多个连接到irc,但从客户端传递的所有数据只是通过最新的irc连接(如果这就说得通了)。

例如客户端1,客户端2和Client3都连接到IRC,但无论是谁发送的数据这一切都通过Client3。

它可以识别来自不同的客户端发出的数据在客户端和服务器应用程序之间,我认为问题在于我已经连接到IRC的方式中。当TCP服务器接受一个新的客户端时,一个新的线程被用来监听传入的数据,并且从那里新的线程被连接到IRC。我确信那是存在问题的地方,但我现在很困惑自己,想知道是否有人能帮我找出解决方案。

编辑:我觉得这个问题是,它不能区分具体的客户端使用的线程,所以它只是通过最新的一个发送。这甚至可以完成?

+0

欢迎来到SO。请不要在标题和标签中复制“C#”。此外,您的问题是.NET,而不是C#编程语言。 – 2010-05-29 23:11:53

+0

你可能应该发布一些关键代码。 – m0s 2010-05-30 03:10:24

回答

0

看来,服务器只打开套接字到最后一次连接。也许如果你尝试处理服务器上的消息,并打开一个套接字到客户端,它可能会工作。

+0

我不认为这部分有问题。它从客户端发送数据 - >服务器 - > irc,这是问题所在。客户端输入数据,然后进入服务器(这部分是好的),然后进入irc(这是所有从最新连接出来的地方) – Jamie 2010-05-29 23:04:57