有以下程序
Socket Server 简称 ss
socket 客户端1 简称 sc1
socket 客户端2 简称 sc2目前我已经实践SC1、SC2和SS互通现在需要实现 SC1发送给SS 然后SS将消息体转发给SC2?该如何实现?SS功能需要记录之间通讯的信息
Socket Server 简称 ss
socket 客户端1 简称 sc1
socket 客户端2 简称 sc2目前我已经实践SC1、SC2和SS互通现在需要实现 SC1发送给SS 然后SS将消息体转发给SC2?该如何实现?SS功能需要记录之间通讯的信息
解决方案 »
- 牛人们大家们!看看这个数组操作的性能怎么样!!!希望给点建议,改进,不足,或者个人看法
- 怎么做像qq宠物一类的程序?
- 到哪里看开源软件的源代码?
- Windows服务与窗体程序
- 一个从网页中swf文件读取链接的问题
- #### 关于ADO.net处理 数据库 视图 的问题! ####
- 要怎样才能解决不再收到重复的数据包的问题?
- 最后40分,求一个关于javascript 控制treeview的问题(大家支持谢谢~!)
- 从EXCEL的读入写入数据库中,要拼个INSERT语句, 像各种特殊字符怎么替换?
- c#中有什么函数可以一个byte[2]类型的数据转化为int类型?
- 进度条怎么用
- C# byte[] 如何去掉空值?
SC收到后,根据SC1的目标,找到SC2,发送因为都是长连接,当客户端连接上服务器后,他的地址以及端口号是会被记录的
就是不清楚能不能透过火墙
ipadd = clientSocket.RemoteEndPoint.ToString();
al.Add(clientSocket);//保存客户端socket之后要转发消息就在al中查找对应的 客户端socket 发送就行了
首先要清楚 服务器端有一个接受用户连接的Socket(调用Accept()接受用户连接),该Socket依次接受用户Socket1、Socket2、Socket3……的链接后,存放在一个ArrayList中(或者其他容器,list.Add(Socket1)、list.Add(Socket2)……)
那么这个list就叫客户端列表啊。
注意Socket1会对应一个远程客户端Socket、Socket2也会对应另一个远程Socket……
Socket1、Socket2……都在服务器上
SOcket1所对应的远程Socket和Socket2所对应的远程Socket之间的通信 完全靠服务器端的Socket1和Socket2中转
比如Socket1的远程客户端发信息给Socket2的远程客户端,消息先发到服务器,服务器根据消息接受者,在list(也就是客户端列表)中查找对应用户,找到Socket2,然后 Socket2.Send(消息),这样就将消息中转到了Socket2所对应的远程客户端。
这个时候用al.Add(clientSocket);
我如何取出,名字都是clientSocket,如何分别呢
用它就可以了、。
http://www.cnblogs.com/yank/archive/2007/11/23/969773.html
dictionary来访clientSocket,那么如何知道某个clientsocket已经断开了,需要重新连接呢