c#如何实现多个客户端的通信(同一个服务器)
3个回答
展开全部
客户端之间的通讯有两个办法。
1. 服务器中转
2. 服务器上注册后,客镇兄户端之间直接通信。
对于第一种方法,大多比较简御拆袭单。查一下socket的文章,还有御雀大把现成的代码给你看。
第二个方法就稍微复杂一些。
但原理都一样。客户端A,链接服务器后,地址信息就保存到了服务器上。除了保持与服务器的通信外。另外开启一个 Socket,绑定到另一个端口,并且一直监听此端口。
客户端B连接服务器,从服务器上获取客户端A的地址信息。把客户端A当成服务器,连接A。
1. 服务器中转
2. 服务器上注册后,客镇兄户端之间直接通信。
对于第一种方法,大多比较简御拆袭单。查一下socket的文章,还有御雀大把现成的代码给你看。
第二个方法就稍微复杂一些。
但原理都一样。客户端A,链接服务器后,地址信息就保存到了服务器上。除了保持与服务器的通信外。另外开启一个 Socket,绑定到另一个端口,并且一直监听此端口。
客户端B连接服务器,从服务器上获取客户端A的地址信息。把客户端A当成服务器,连接A。
展开全部
建立多个线程消孙就ok了 为每一个连接 创建一个线程去处理
while (true)
{
// 得到包含客户端信息的套接字
Socket client = server.Accept();
//创建消息服务线程对象
ClientThread newclient = new ClientThread(client);
//芹桥斗把ClientThread 类的ClientService方法委嫌磨托给线程
Thread newthread = new Thread(new ThreadStart(newclient.ClientService));
// 启动消息服务线程
newthread.Start();
}
while (true)
{
// 得到包含客户端信息的套接字
Socket client = server.Accept();
//创建消息服务线程对象
ClientThread newclient = new ClientThread(client);
//芹桥斗把ClientThread 类的ClientService方法委嫌磨托给线程
Thread newthread = new Thread(new ThreadStart(newclient.ClientService));
// 启动消息服务线程
newthread.Start();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单纯的多橘游线颤伍皮程是不可能实现的 要用到socket
你到msdn或者网上一搜 结果一大堆 特别茄差是msdn里讲的相当详细
你到msdn或者网上一搜 结果一大堆 特别茄差是msdn里讲的相当详细
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询