socket多客户端 建一个服务器端,是否需要建一个socket数组来存储每次客户端连入的socket,服务器向客户端发数据时再从socket数组中找出该客户端socket信息进行发送? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 理论上应该有个集合来存储客户的信息,当然包括SOCKET句柄2 至于是不是要从集合中查找SOCKET句柄,这个要看你的具体逻辑了。 可以用FOR循环查询你的那个用户集合,然后找到对应的SOCKET句柄,然后SEND 只要看你的架构是什么样的。c/s服务器端不需要保存客户端socket,因为服务器只所以返回客户端信息,都是因为客户端首先访问服务器,而服务器能够accept到客户端连接并接收数据,accept操作本身就返回了客户端socket,程序在接受一个请求之后计算出结果就直接用这个socket返回信息就可以了,不需要再额外去找其它的什么socket。 你自己画一个序列图会更明白,首先是客户端向服务器发送信息,服务器这时候会话生命周期开始,服务器接下来计算要返回的信息,然后用这个会话返回结果,这个会话就结束了。当客户端另一个信息发送到服务器,服务器另一个会话生命周期开始,底层系统也许会给服务器的Accept命令返回同一个socket,也可能实例化的不是原来那个socket,但是有什么关系呢?服务器反正是用Accept命令得到的socket对象发送回复信息。c/s服务器通常是应付无限多的客户端,世界上任何客户端都可能进来访问服务器。只有一种情况需要用什么数组保存对方的socket,就是服务器还是个客户端,负责主动跟一些自己认识的客户端联系,但这已经不是c/s架构,而是对等的网络了。 SP1234大哥这个也是一种情况,如果你不需要服务器主动给客户端发消息。可以直接根据其SOCKET句柄,直接下发数据。 你开发一个WinForm程序它能够另外一些WinForm程序聊天,可以主动发消息,这叫做服务器吗?我想那些告诉这个机制叫做服务器的人,它大概没有开发过企业级的服务器吧。 我开发的是:直接用ASP.NEt以web形式处理SOCKEt通信,以前WEB只是负责数据发布,现在整合一个功能。我现在是将所有连接信息都保存在HASTABLE(哈希表)中,通过key的唯一性,找到对应的value值(SOKCET)。public static Hashtable HTsession;// 保存所有客户端会话的哈希表, 在SOCKET类中从网页界面上调用,但有时候哈希中内容会丢失,这是为什么?怎么解决? 如何优化这个模糊查询 div css 排版布局,浏览器不兼容。。 郁闷,发几句牢骚!!! asp.net安装部署中设置快捷方试。支持,IP和端口怎么变都可以.能不能实现. 获得grivview id 送分行动,正则表达式 关于数据库总字符的输出排版问题 急!使用ODBC.NET数据提供者连接ACCESS问题,代码用C#编写! 问个极度郁闷的问题!我好想自杀啊。。。。55555555555555555555555555555555555555555555555555555 还是有关EXCEL和.NET 的问题!!! 求XML递归算法 邮件自动删除源码(asp.net)
2 至于是不是要从集合中查找SOCKET句柄,这个要看你的具体逻辑了。
public static Hashtable HTsession;// 保存所有客户端会话的哈希表, 在SOCKET类中
从网页界面上调用,但有时候哈希中内容会丢失,这是为什么?怎么解决?