java socket通信,两个一直没有搞明白的问题,请教socket高手回答 1、程序在网络环境复杂,距离远的情况下有丢包,数据不能到达的情况,到底程序如何控制才能避免发生这个呢??2、我开启多线程下载,cpu立刻站满,速度也爆快,我不希望这样啊,我希望能不影响其它操作,而速度也没必要那么快,程序中应如何控制带宽和cpu使用率阿?这两个实在没思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【bloodrate】截止到2008-07-25 00:36:48的历史汇总数据(不包括此帖):发帖的总数量:109 发帖的总分数:1850 每贴平均分数:16 回帖的总数量:193 得分贴总数量:49 回帖的得分率:25% 结贴的总数量:105 结贴的总分数:1500 无满意结贴数:60 无满意结贴分:1750 未结的帖子数:4 未结的总分数:350 结贴的百分比:96.33 % 结分的百分比:81.08 % 无满意结贴率:57.14 % 无满意结分率:116.67% 值得尊敬 1、tcp连接还会丢包的话,那你可以多次重发,或者用阻塞机制2、多线程下载,你不要在主线程建立连接。每个线程也可以用sleep来交出cpu 1. Socket 是建立在 TCP/IP 协议上的,TCP 协议(Socket)会自动处理数据包丢失的情况,即当出现数据包丢失时接收方会自动给发送方返回要求重发丢失的数据包的信息。2. 一般可通过调整同时开启的线程数量粗略地控制带宽和 CPU 的使用率,更精细的控制就要在 I/O 流上作控制了。 同意楼上的,另外如果你觉得CPU被占用太多机器变慢了的话,应该是你的线程开得太多,建议你考虑使用线程池技术 第二个问题再进一步,比如最简单的通信 客户端 socket.getOutputStream().write()... 服务器 serverSocket.accept().read().... 这是java代码最底层的通讯代码了,那么假如说我的网卡带宽是100MB,线路带宽是256k,那么用这两句传输数据是不是默认用满带宽传输,就是100MB与256KB之间较小的256KB传输,如果想控制在100KB以下怎么做? 如何用java实现从大批文件中筛选 phone number的设计,说明设计思路? 讨论erp系统的可复用的代码. 问个命令行打包命令:包含已存在的jar包 求高效算法替换嵌套循环 决定开始不学.net 学java了,问一下关于表单验证的小问题 11111 如何统计代码中数据/函数声明和变量定义语句的条数? 有谁会用JDK中的native2ascii命令 请问那位哥们能够提供关于iso国际论证java方面的资料?我有c方面的 请问:如何反编译java的class类? 请问我该学什么了 有关Spring的一个问题 怎么把字符A转换为ASCII码,如A=65
楼主【bloodrate】截止到2008-07-25 00:36:48的历史汇总数据(不包括此帖):
发帖的总数量:109 发帖的总分数:1850 每贴平均分数:16
回帖的总数量:193 得分贴总数量:49 回帖的得分率:25%
结贴的总数量:105 结贴的总分数:1500
无满意结贴数:60 无满意结贴分:1750
未结的帖子数:4 未结的总分数:350
结贴的百分比:96.33 % 结分的百分比:81.08 %
无满意结贴率:57.14 % 无满意结分率:116.67%
值得尊敬
2、多线程下载,你不要在主线程建立连接。每个线程也可以用sleep来交出cpu
1. Socket 是建立在 TCP/IP 协议上的,TCP 协议(Socket)会自动处理数据包丢失的情况,即当出现数据包丢失时接收方会自动给发送方返回要求重发丢失的数据包的信息。
2. 一般可通过调整同时开启的线程数量粗略地控制带宽和 CPU 的使用率,更精细的控制就要在 I/O 流上作控制了。
同意楼上的,另外如果你觉得CPU被占用太多机器变慢了的话,应该是你的线程开得太多,建议你考虑使用线程池技术