首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

c# socket有关问题!

2012-12-29 
c# socket问题!~~求助最近工作遇到c#用socket的问题,我是做上位机软件的,下位机是用GPRS来传送给我做的服

c# socket问题!~~求助
最近工作遇到c#用socket的问题,我是做上位机软件的,下位机是用GPRS来传送给我做的服务器软件一些数据包,也可以理解成TCP连接方式(长连接),我要描述的是下位机不只一个,也就是说客户端不只是一个,作为服务端的我,怎么去给不同的客户端发数据包呢?请各位大侠明示,谁能给个demo感激不尽!
[解决办法]
在客户端登录的时候在服务器端做个会话集合,

每个会话保存客户端socket对象以及socket的句柄做为ID,如果说客户端是有类型区分的可以做个类型的标记,这样就存储了不同类型的客户端集合,

当需要发送消息的时候直接查找客户端会话对象然后通过对应存储的 socket对象发送就可以了
[解决办法]
建立用戶端數據庫
數據庫中就已建立各別用戶可接收什麼數據包。如:甲:A, B;乙:A, C
當用戶端要求連線時,先驗證身份﹗當服務端的產生A數據包時,可分別送甲及乙;當服務端產生C數據包時,則分送給乙。
如果您使用WCF或WF則可方便,因為用戶要求連線時,就必須送出要訂閱的服務,可以至MSDN找有關WCF或WF的範例。
[解决办法]
个人认为写一个客户对象类,大概包含 唯一标识 ,缓存空间 连接时间,和客户编号 ,和Socket
客户连接的时候就new对象并保存到集合,并且客户端要做心跳包,服务接受后更改客户类时间  服务器的话 每个多少秒比对一下集合,如果超出时间并删除集合客户端类,并关闭客户端类socket
个人观点  

热点排行