我正在使用Socket与ServerSocket进行通信。字符串正从服务器发送到我的套接字。每条不同的行都是一条消息,在解析时包含信息。要阅读这些文本行,请使用扫描仪。

问题在于数据正在“爆发”。尽管服务器连续均匀地发送数据,但客户端扫描器读取的数据似乎暂停,一次读入一堆消息(30-40),然后再次暂停。它无限期地重复这个循环。

如果我增加发送数据的速率,暂停的持续时间会减少;如果我减慢数据速度(每秒1条消息),错误依然存在,并且暂停时间变得很长。就好像Socket在向Scanner发送任何数据之前等待其缓冲区溢出一样;然后刷新所有内容并再次等待溢出。但是,如果我减小Socket缓冲区的大小,则根本没有任何变化。

应该指出的是,我之前在服务器端使用过扫描器和套接字,并且所有的工作都按照需要进行。此外,我a)尝试了像Java Tutorials这样的BufferedReader(bug没有任何变化),并且b)将服务器传输列表打印到一个文件中,并以相同的方式从文件中读取,程序按预期工作(消息接收的恒定速率等),所以问题似乎在Socket本身。

所以:我如何解决这个问题?我摆脱了思想,我真的不知道发生了什么。

代码(根据要求):

// In try block

// Makes the connection

Socket connection = new Socket(TARGET_MACHINE, PORT_NUMBER);

Scanner reader = new Scanner(connection.getInputStream());

// In new Thread

// In run()

while(!finished) // Boolean exit strategy

{

if(reader.hasNextLine())

Sring message = reader.nextLine();

}这就是我连接和检索字符串的方式。

另外,我收到的字符串通常长约20-40个字符。

java socket字符串_Java Socket Bug:从Socket的InputStream读取字符串相关推荐

  1. java 通信 教程_Java实现简单的socket通信教程

    今天学习了一下java如何实现socket通信,感觉难点反而是在io上,因为java对socket封装已经很完善了. 今天代码花了整个晚上调试,主要原因是io的flush问题和命令行下如何运行具有pa ...

  2. java多线程 游戏_java利用多线程和Socket实现猜拳游戏

    本文实例为大家分享了利用多线程和Socket实现猜拳游戏的具体代码,供大家参考,具体内容如下 实例:猜拳游戏 猜拳游戏是指小时候玩的石头.剪刀.布的游戏.客户端与服务器的"较量", ...

  3. java tcp 乱码_Java和C++通过Socket通信中文乱码的解决

    理想的开发状态是我开始就是C开发,一直是C的开发,现在还是C的开发,若干年后,幸运的话,我可以成为C语言的高手或者专家-- 更实际的情况是我开始是C开发,后来变成了JAVA开发,然后又做起了VC++的 ...

  4. java读取文件中的字符串_java中怎样将文件的内容读取成字符串

    java中怎样将文件的内容读取成字符串 mip版  关注:68  答案:3  悬赏:10 解决时间 2021-01-18 02:36 已解决 2021-01-17 04:47 java中怎样将文件的内 ...

  5. java excel函数_JAVA实现EXCEL公式专题(四)——字符串函数

    /** * 项目名称: * 文件说明: ExCEL公式类型:字符串公式 * 主要特点: * 版本号:1.0 * 制作人:刘晨曦 * 创建时间:2013-12-3 **/ package EXCEL; ...

  6. java word 乱码_JAVA 使用POI替换word中的某些字符串,在本地调试一切ok,在服务器上出现乱码...

    最近做了一个在word中替换指定字符串,插入图片,转换成pdf的需求,弄了两天多才搞出来,本以为everything is ok,但是在本地调试什么都是好的. 放到服务器上以后...却乱码了...乱码 ...

  7. java通信项目_Java项目中的多线程通信如何利用Socket实现

    Java项目中的多线程通信如何利用Socket实现 发布时间:2020-11-24 16:44:40 来源:亿速云 阅读:96 作者:Leah 这期内容当中小编将会给大家带来有关Java项目中的多线程 ...

  8. java iso8583 socket 服务_JAVA客户端amp;服务器的socket通信

    JAVA客户端&服务器的socket通信 socket是两台主机之间的一个连接通道,它可以完成七个基本操作: 发送远程机器 发送数据 接收数据 关闭连接 绑定端口 监听入站数据 再绑定端口上接 ...

  9. java游戏输赢统计_java利用多线程和Socket实现猜拳游戏

    本文实例为大家分享了利用多线程和Socket实现猜拳游戏的具体代码,供大家参考,具体内容如下 实例:猜拳游戏 猜拳游戏是指小时候玩的石头.剪刀.布的游戏.客户端与服务器的"较量", ...

最新文章

  1. 字节二面:GET 请求能上传图片吗?我蒙了。。
  2. Stanford UFLDL教程 数据预处理
  3. Hi3516A开发--RTC电路
  4. 妇产科2020年发表的SCI论文大数据分析
  5. Angular服务http post传递key-value 到Springmvc控制器
  6. Nginx内存管理详解
  7. 2016/3/16 高级查询 ①连接查询 ②联合查询 ③子查询 无关 相关
  8. 使用Synergy多台电脑共享键盘鼠标和剪贴板
  9. java ssm项目_JAVA项目:逝去的SSM
  10. 在eclipse里如何快速定位到某一行?
  11. 使用Guava retryer优雅的实现接口重试机制
  12. Linux Shell笔记2 函数
  13. 总结开发Silverlight 注意事项
  14. oracle的varchar用法,以VARCHAR2作为key的索引表的使用
  15. 模式识别人工神经网络BP算法
  16. Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/
  17. 一个浏览器播放5个或者6个flv的视频就不能播放了
  18. 华为企业业务的数字化与绿色节能“双向突围”
  19. Could not obtain connection to query metadata : Public Key Retrieval is not allowed
  20. 前端的图片优化的6种方案

热门文章

  1. linux vim编译命令行,LINUX VIM编译器常用命令总结
  2. linux怎么添加工作组,linux 用户与工作组
  3. Pandas必知必会的使用技巧,值得收藏!
  4. 来自 Facebook 内部的 Python 学习知识图谱,太全了!
  5. GitHub 4K+Star!SpaceX火箭数据开放API接口,可用Python进行抓取分析
  6. 《中餐厅》弹幕数据分析,我不要你觉得,我只要我觉得!
  7. 如何在Windows系统上使用Object Detection API训练自己的数据?
  8. 批处理 批量s扫1433_申报资料 | 批量整理图谱(续)
  9. gettype获取类名_delphi – 获取属于任何类型的单元名称(TRttiType)
  10. mfc从文件中读取数据_Java中Transient关键字,一点课堂(多岸学院)