最近开始做socket方面的研究,帖子发了一个又一个!问题通过各位高手的帮助也基本解决!首先感谢csdn给我们提供了这个交流平台,其次感谢帮助我的人!
感谢说完开始说正事:原来我的考虑是我只做个服务端程序,利用多线程无论客户端有多少,我都给他分配个线程,也无论你是长连接还是短连接,只要你发送数据我照单全收。。
呵呵~~
不知道我说的对不对,因为还处在测试阶段加上用户数量不能达到很多!所以目前看不出什么毛病!唯一毛病就是只要客户端来个无限发送,cpu使用率马上达到100%!这应该就是缺点了!
于是我想找到解决办法?先说下领导告诉我的方法(也许就是他在误导我),首先他告诉我说客户端不固定,有可能只是一个有可能多个!于是我用的方法是死循环等待客户连接!然后他告诉我说客户端要实时(时时)回传数据,所以我就写了个判断!收到数据回复“收到”,然后客户继续传,客户端的程序是用其他语言来写入信息采集设备中,我还没接触,所以自己模拟的客户端是收到确认继续发这样无限发下去。。我想知道是不是不用这样?我可以控制时间段发送?或是其他方法不立即发送?也就是说长连接没错,但频率不要很快的!
感谢说完开始说正事:原来我的考虑是我只做个服务端程序,利用多线程无论客户端有多少,我都给他分配个线程,也无论你是长连接还是短连接,只要你发送数据我照单全收。。
呵呵~~
不知道我说的对不对,因为还处在测试阶段加上用户数量不能达到很多!所以目前看不出什么毛病!唯一毛病就是只要客户端来个无限发送,cpu使用率马上达到100%!这应该就是缺点了!
于是我想找到解决办法?先说下领导告诉我的方法(也许就是他在误导我),首先他告诉我说客户端不固定,有可能只是一个有可能多个!于是我用的方法是死循环等待客户连接!然后他告诉我说客户端要实时(时时)回传数据,所以我就写了个判断!收到数据回复“收到”,然后客户继续传,客户端的程序是用其他语言来写入信息采集设备中,我还没接触,所以自己模拟的客户端是收到确认继续发这样无限发下去。。我想知道是不是不用这样?我可以控制时间段发送?或是其他方法不立即发送?也就是说长连接没错,但频率不要很快的!
解决方案 »
- .clone()
- 怎么才能学好.NET技术呢 ?
- 关于DataGridView填充字段问题
- 关于ComboBox问题
- 怎么用最简单的方法,让一个WINFORM程序里所有的子窗体,都共用主窗体的图标???
- 调一个外部COM对象,放在主进程中调用的时候没问题,但放在线程里面就调不起来了,请大家帮忙分析分析
- DotNetSkin 皮肤FixedToolWindow问题
- 如何使没有登陆的用户不能直接进入系统页面,而只能登陆登陆页面?C# for Web Form?在线等,马上给分
- c# 打印固定格式的针式打印机 求救!!!
- 保存配置文件
- 谁用过DevExpress.XtraReports.UI.XtraReport
- net异常报错求解答
那所谓的包结构是说自己给自己的数组加上定义吗?比如网上所说的包头包体是自己定义的吧?
数据包嵌套?也就是数组嵌套数组?
呵呵不知道我的理解对不对?
http://www.cnblogs.com/goodcandle/archive/2005/12/10/socket.html
异步的Socket,高手做的
不需要进程
全部通过事件完成……
使用一个线程,每个客户端数据中格式化下,在头部加上自己的标号即可。或者根据ip过来。
QQ的是定时通信,比如说:3秒钟通信一次,然后没三秒去请求下服务器,问下是否有人发过来信息
“ThreadPool类会在线程的托管池中重用已有的线程,使用完线程后,线程就会返回线程池,供以后使用;”这句话是刚查的!不知道是不是解决了多余线程的问题?
至于你说的一个线程保持1000个socket的方法我真的不太懂!