java 获取网络带宽_Java开发网 - 一个测网络延迟和带宽的程序,发10M的数据有问题...
我的想法是客户端发10M的string给服务器,服务器把收到的数据返回给客户端,
客户端记下发送的时刻和收完数据的时刻,两者相减再除2就是传输用的时间.
发1M没有问题,现在要发10M,就循环10次,结果服务器和客户端都陷入了循环,
不知问题出在哪,请大家指点,谢谢!
客户端程序如下
import java.io.*;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
public
class EchoClient
{
public static void main(String [] args)
{
String str="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",sendstr=null;
for(int i=0;i<10;i++)
sendstr+=str;
sendstr+="12345678123456781234";
String realsendstr=null;
for(int k=0;k<1000;k++)
realsendstr+=sendstr;
try
{
System.setProperty("javax.net.ssl.trustStore","clienttrust");
SSLSocketFactory sslsocketfactory = (SSLSocketFactory)SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket)sslsocketfactory.createSocket("localhost", 9999);
InputStream ins= sslsocket.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(ins);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
OutputStream outs=sslsocket.getOutputStream();
PrintStream ps=new PrintStream(outs);
OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outs);
BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter);
String recvstr=null;
int len=0;
System.out.println("the size of sendstr is "+realsendstr.length());
long sendtime = System. currentTimeMillis();
for(int m=0;m<10;m++)
ps.println(realsendstr);
ps.println("");
while((recvstr=bufferedreader.readLine())!=null) {
len+=recvstr.length();
if(recvstr.equals("")) break;
}
long recvtime = System. currentTimeMillis();
long costtime= recvtime-sendtime;
System.out.println("the delay is "+costtime+" ms");
System.out.println("recv len:"+len);//+" data:["+new String(buff,0,len)+"]");
double f=len*2*1000/(costtime*1024);
System.out.print("the speed is ");
System.out.print(f);
System.out.println(" K/s");
ps.close();
bufferedwriter.close();
bufferedreader.close();
}
catch (Exception exception)
{
exception.printStackTrace();
}
}
}
服务器端如下:
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.*;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
public
class EchoServer
{
public static void main(String [] arstring)
{
try
{
SSLServerSocketFactory sslserversocketfactory =
(SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
SSLServerSocket sslserversocket =
(SSLServerSocket)sslserversocketfactory.createServerSocket(9999);
while(true) {
SSLSocket sslsocket = (SSLSocket) sslserversocket.accept();
InputStream inputstream = sslsocket.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
OutputStream outs=sslsocket.getOutputStream();
PrintStream ps=new PrintStream(outs);
OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outs);
BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter);
String str=null;
while((str=bufferedreader.readLine())!=null) {
ps.println(str);
if(str.equals("")) break;
}
System.out.println("recv and send over");
bufferedwriter.close();
bufferedreader.close();
sslsocket.close();
}
}
catch (Exception exception)
{
exception.printStackTrace();
}
}
}
java 获取网络带宽_Java开发网 - 一个测网络延迟和带宽的程序,发10M的数据有问题...相关推荐
- java有any类型吗_Java开发网 - 一个关于CORBA中any类型的问题
Posted by:an350901450 Posted on:2008-12-30 14:44 请教一个问题 我的IDL文件: module anyM{ interface anyI{ any pr ...
- java 句柄无效_Java开发网 - java.io.IOException: 句柄无效???
Posted by:aideliwu Posted on:2004-09-01 21:32 我思考le很久,也查看啦代码很久,可还是百思不得其解, 在Freejava中运行的结果还是: java.io ...
- java jtextarea 显示_Java开发网
做了测试:在同一个面板上(二个按钮,一个JtextArea),通过按钮事件可以在JtextArea中切换显示东西 现在问题是按钮.JTextArea在两个独立的面板类中,我已经用了一个控制类,在两者间 ...
- java menu字体_Java开发网 - 请问如何让菜单字体变宋体?
Posted by:scottding Posted on:2003-01-23 12:44 贴出了大部分,你看看想改什么吧. Font font = new Font("宋体", ...
- java swt 布局_Java开发网 - 基于SWT的类XUL实现: SWT-XUI
Posted by:yipsilon Posted on:2005-07-16 15:35 1.0 M1 Build 20050715 .+ 增加dragSource, dropTarget和tran ...
- java 获取邮编_java利用爬虫技术抓取(省、市(区号\邮编)、县)数据
/** * @param var 城市名称 * @returnstring数组.0表示邮编1表示区号 */ @SuppressWarnings("deprecation") pri ...
- java 获取方法_Java 反射理解(三)-- Java获取方法信息
Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void ...
- java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
Java 获取主域名方法有很多种,有的用截串方式,我用的一个投机取巧的方式,这个获取域名的方法比较简单,代码也较少. Java从URL地址中获取域名//这样获取的方式,不请求就能获取到域名 URL ...
- java获取文件大小_Java获取文件大小
java获取文件大小 Today we will look into different ways to get file size in Java. 今天,我们将研究使用Java获取文件大小的不同方 ...
最新文章
- 小白如何购买阿里云服务器(图文教程)?
- ImportError: /lib64/libc.so.6: version `GLIBC_2.17‘ 问题解决
- 常用JavaScript语法107条
- linux 433发送驱动
- ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!
- Python GUI Programming (Tkinter)
- 渐变颜色Qt学习:QPainter之渐变填充
- Backbone.js入门学习资源
- 记一次服务器执行MySQL耗时问题
- Android Studio升级到3.0.0后构建项目时出现的问题总结
- delphi商业源码
- 复合视频信号CVBS解析
- 哈啰单车JAVA面经
- Ubuntu 20.4 安装 Notepad++
- HTML学生个人网站作业设计:动漫网站设计——悬崖上的金鱼姬(5页) HTML+CSS 简单DIV布局网页模板代码
- 前台中文传参后台乱码解决方案
- AMBA总线-结合axi-vip对axi4协议的理解1
- Retrofit 2.0 超能实践(三),轻松实现多文件/图片上传/Json字符串/表单
- 微软“黑屏”被严重误读
- 多屏互动的前景探索-互动通-袁珏明