我的想法是客户端发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的数据有问题...相关推荐

  1. java有any类型吗_Java开发网 - 一个关于CORBA中any类型的问题

    Posted by:an350901450 Posted on:2008-12-30 14:44 请教一个问题 我的IDL文件: module anyM{ interface anyI{ any pr ...

  2. java 句柄无效_Java开发网 - java.io.IOException: 句柄无效???

    Posted by:aideliwu Posted on:2004-09-01 21:32 我思考le很久,也查看啦代码很久,可还是百思不得其解, 在Freejava中运行的结果还是: java.io ...

  3. java jtextarea 显示_Java开发网

    做了测试:在同一个面板上(二个按钮,一个JtextArea),通过按钮事件可以在JtextArea中切换显示东西 现在问题是按钮.JTextArea在两个独立的面板类中,我已经用了一个控制类,在两者间 ...

  4. java menu字体_Java开发网 - 请问如何让菜单字体变宋体?

    Posted by:scottding Posted on:2003-01-23 12:44 贴出了大部分,你看看想改什么吧. Font font = new Font("宋体", ...

  5. 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 ...

  6. java 获取邮编_java利用爬虫技术抓取(省、市(区号\邮编)、县)数据

    /** * @param var 城市名称 * @returnstring数组.0表示邮编1表示区号 */ @SuppressWarnings("deprecation") pri ...

  7. java 获取方法_Java 反射理解(三)-- Java获取方法信息

    Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void ...

  8. java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名

    Java  获取主域名方法有很多种,有的用截串方式,我用的一个投机取巧的方式,这个获取域名的方法比较简单,代码也较少. Java从URL地址中获取域名//这样获取的方式,不请求就能获取到域名 URL ...

  9. java获取文件大小_Java获取文件大小

    java获取文件大小 Today we will look into different ways to get file size in Java. 今天,我们将研究使用Java获取文件大小的不同方 ...

最新文章

  1. 小白如何购买阿里云服务器(图文教程)?
  2. ImportError: /lib64/libc.so.6: version `GLIBC_2.17‘ 问题解决
  3. 常用JavaScript语法107条
  4. linux 433发送驱动
  5. ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!
  6. Python GUI Programming (Tkinter)
  7. 渐变颜色Qt学习:QPainter之渐变填充
  8. Backbone.js入门学习资源
  9. 记一次服务器执行MySQL耗时问题
  10. Android Studio升级到3.0.0后构建项目时出现的问题总结
  11. delphi商业源码
  12. 复合视频信号CVBS解析
  13. 哈啰单车JAVA面经
  14. Ubuntu 20.4 安装 Notepad++
  15. HTML学生个人网站作业设计:动漫网站设计——悬崖上的金鱼姬(5页) HTML+CSS 简单DIV布局网页模板代码
  16. 前台中文传参后台乱码解决方案
  17. AMBA总线-结合axi-vip对axi4协议的理解1
  18. Retrofit 2.0 超能实践(三),轻松实现多文件/图片上传/Json字符串/表单
  19. 微软“黑屏”被严重误读
  20. 多屏互动的前景探索-互动通-袁珏明

热门文章

  1. byte数组转字符串_VS2012 C# 16进制数与字符串的互换
  2. 新手入门深度学习 | 卷积神经网络是什么?
  3. 百度地图api改变覆盖物背景实例及css颜色值简介
  4. c#中WebBrowser控件的使用方法
  5. 基于 Flink 的严选实时数仓实践
  6. 达观数据分析平台架构和Hive实践
  7. 数据挖掘导论读书笔记9聚类分析
  8. 日调度5万亿次,腾讯云微服务架构体系TSF深度解读
  9. Mybatis之Oracle增删查改示例--转
  10. 机器学习算法基础(基础机器学习课程)——第一天