社区
Java SE
帖子详情
java socket通信,两个一直没有搞明白的问题,请教socket高手回答
bloodrate
2008-07-25 12:36:40
1、程序在网络环境复杂,距离远的情况下有丢包,数据不能到达的情况,到底程序如何控制才能避免发生这个呢??
2、我开启多线程下载,cpu立刻站满,速度也爆快,我不希望这样啊,我希望能不影响其它操作,而速度也没必要那么快,程序中应如何控制带宽和cpu使用率阿?
这两个实在没思路
...全文
73
5
打赏
收藏
java socket通信,两个一直没有搞明白的问题,请教socket高手回答
1、程序在网络环境复杂,距离远的情况下有丢包,数据不能到达的情况,到底程序如何控制才能避免发生这个呢?? 2、我开启多线程下载,cpu立刻站满,速度也爆快,我不希望这样啊,我希望能不影响其它操作,而速度也没必要那么快,程序中应如何控制带宽和cpu使用率阿? 这两个实在没思路
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sagezk
2008-07-25
打赏
举报
回复
[Quote=引用楼主 bloodrate 的帖子:]
1、程序在网络环境复杂,距离远的情况下有丢包,数据不能到达的情况,到底程序如何控制才能避免发生这个呢??
2、我开启多线程下载,cpu立刻站满,速度也爆快,我不希望这样啊,我希望能不影响其它操作,而速度也没必要那么快,程序中应如何控制带宽和cpu使用率阿?
这两个实在没思路
[/Quote]
1
. Socket 是建立在 TCP/IP 协议上的,TCP 协议(Socket)会自动处理数据包丢失的情况,即当出现数据包丢失时接收方会自动给发送方返回要求重发丢失的数据包的信息。
2
. 一般可通过调整同时开启的线程数量粗略地控制带宽和 CPU 的使用率,更精细的控制就要在 I/O 流上作控制了。
jdlsfl
2008-07-25
打赏
举报
回复
1、tcp连接还会丢包的话,那你可以多次重发,或者用阻塞机制
2、多线程下载,你不要在主线程建立连接。每个线程也可以用sleep来交出cpu
bloodrate
2008-07-25
打赏
举报
回复
第二个问题再进一步,比如最简单的通信 客户端 socket.getOutputStream().write()... 服务器 serverSocket.accept().read().... 这是java代码最底层的通讯代码了,那么假如说我的网卡带宽是100MB,线路带宽是256k,那么用这两句传输数据是不是默认用满带宽传输,就是100MB与256KB之间较小的256KB传输,如果想控制在100KB以下怎么做?
Ant
2008-07-25
打赏
举报
回复
[Quote=引用 3 楼 sagezk 的回复:]
1. Socket 是建立在 TCP/IP 协议上的,TCP 协议(Socket)会自动处理数据包丢失的情况,即当出现数据包丢失时接收方会自动给发送方返回要求重发丢失的数据包的信息。
2. 一般可通过调整同时开启的线程数量粗略地控制带宽和 CPU 的使用率,更精细的控制就要在 I/O 流上作控制了。
[/Quote]
同意楼上的,另外如果你觉得CPU被占用太多机器变慢了的话,应该是你的线程开得太多,建议你考虑使用线程池技术
Java
大数据培训学校全套教材--10)
Socket
所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个
java
工程师的工作了。 本门课程为"
java
大数据培训学校全套教材"系列课程的第十篇,学习TCP,UDP,URL类让大家对
Socket
编程打下好的基础。
基于TCP的
Socket
通信
TCP/IP
通信
协议是一种可靠的网络协议,它在
通信
的两端各建立一个
Socket
,从而在
通信
两端之间形成网络虚拟链路。 一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行
通信
。
Java
使用
Socket
对象来代表两端的...
java
socket
模型_
Java
Socket
的BIO模型(以TCP为例)
简介网络编程中,客户端-服务端模式是一种常见的模式。...
java
.net.Server
Socket
服务端public class Tcp
Socket
Server {public static void main(String[] args) throws IOException, InterruptedExcept...
Java
中套接字(
socket
)以及有关概念入门
目录
socket
的理解 epoll的原理解析 从网卡接收数据的过程 真正的接收了数据 当我们监控一个
socket
时 阻塞时发生了什么 如何唤醒线程一 多个
socket
连接时(引出Select) 解决Select缺点(引出epoll) 措施二 epoll原理 ...
多网卡
socket
的bind
问题
多网卡
socket
的bind
问题
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章