我目前正在尝试使用Silverlight为irc建立一个非常基本的网络聊天。

基本上,我要如何做到这一点,就是让一个TCP服务器监听来自Silverlight的连接。 当客户端连接时,它将创建到irc的新连接,并且数据将通过服务器应用程序传递到客户端/ irc /从客户端/ irc传递。

我已经知道它对于一个客户端连接来说可以正常工作,但是一旦两个(或多个)客户端连接了多个连接,就会建立到irc,但是从客户端传递的所有数据都只会通过最新的irc连接(如果有意义) 。

例如,Client1,Client2和Client3都连接到irc,但是无论是谁发送数据,它们都通过Client3来发送。

在客户端和服务器应用程序之间,它可以识别来自不同客户端的数据,因此我认为问题出在我与irc的连接方式之内。 当TCP服务器接受新客户端时,将创建一个新线程来侦听传入的数据,并从那里创建一个新线程来连接到irc。 我敢肯定那是问题所在,但我现在很困惑,想知道是否有人可以帮助我找出解决方案。

编辑:我认为是问题所在,因为它无法区分特定客户端正在使用哪个线程,因此它只是通过最新的线程发送它。 可以做到吗?

#1楼 票数:0

似乎服务器仅在建立最后连接时打开套接字。 也许,如果您尝试在服务器上处理该消息并为客户端打开一个套接字,它可能会起作用。

#2楼 票数:0

我认为您在线程模型和管理连接池的方式方面存在问题。 阅读本文“ 简单线程TCP服务器”

  ask by Jamie translate from so

未解决问题?本站智能推荐:

1回复

简单的tcp\\ip客户端服务器问题

我正在尝试编写简单的tcp \\ ip客户端服务器。 这是服务器代码: 这是客户端代码: 当我发送到我的服务器时,我无法收到数据回复。 Sock.Receive(remdata)什么也不返回! 为什么?
2回复

设置TCP/IP客户端和服务器以通过网络进行通信

我正在尝试学习一些关于套接字编程的知识,我偶然发现了TcpListener和TcpClient,因为我读到它们对于初学者来说稍微容易一些。 我想要完成的基本要点是拥有一个可以在我的笔记本电脑和同一网络上的另一台笔记本电脑上运行的小型表格,以便它们能够进行通信,即相互发送一串文本。 有了这个,
2回复

用于客户端/服务器通信的命名管道或TCP

我的应用程序支持同一个服务器进程(Windows服务)的多个实例,就像fe SQL Server一样。 客户端/服务器通信将仅在同一网络中进行。 我可以使用TCP,但随后必须为每个服务器实例配置单独的IP端口。 但是,我可以简单地使用命名管道,因此不必考虑端口号,而只需使用服务器实例的
1回复

TCP客户端-服务器连接

我试图让客户端使用 TCP 从服务器获取一些数据。 但它只工作一次。 那么 stream.DataAvailable 总是假的。 客户端代码: 服务器代码: 避免愚蠢的限制文本。 避免愚蠢的限制文本。 避免愚蠢的限制文本。 避免愚蠢的限制文本。 避免愚蠢的限制文本。 避免愚蠢的限制文本。
1回复

通过服务器进行客户端与客户端的通信

我试图弄清楚如何做一个非常小的聊天程序,其中我有一个服务器和几个客户端,可以说3,服务器应该是所有通信中的中间人,所有消息都应在传递之前传递给它给合适的客户。 现在我对此很陌生,所以我所得到的只是一个可以使用TcpListener和Socket连接到服务器的客户端。 然后,客户端可以向服务
4回复

TCP或UDP帮助与C#中的服务器/客户端?

任何人都可以帮忙,我试图弄清楚我需要做什么,我得到了用TCP(UDP)编写服务器和客户端的任务。 基本上,多个客户端将连接到服务器。服务器将MESSSAGES发送到客户端。 我在创建服务器和客户端时没有问题,但是使用tcp我不确定该走哪条路。 .net 3.5是否支持所有功能,还是我需要
1回复

同时进行Oracle连接和TCP客户端/服务器连接

我正在编写一个程序,该程序将在我的实验室的“超级PC”上运行。 它的工作是不断查询客户数据库,以主动查找我们遇到的常见错误。 它通过使用可调计时器并简单地运行查询和数据库列表并解释结果来实现此目的(使用配置UI添加查询和数据库连接)。 该程序与我编写的另一个应用程序建立了TCP客户端/
1回复

TCP如何将数据包从客户端中继到服务器

因此,我正在为游戏服务器创建自己的代理服务器。 到目前为止,发生的事情是我尝试连接到Terraria服务器,并显示“ Connecting..然后,我启动服务器应用程序,该应用程序接受该特定IP和端口上的传入请求,并提示MessageBox显示"Connected" ,然后游戏开始从“正在连接