使用 writeBytes 的 Java 客户端套接字

2024-07-01

我正在从缓冲区读取字符串并将其写入服务器。我遇到的问题是,当我打开套接字并循环写入时,服务器永远不会收到该字符串。 当我使用这个时:

    try {       
        Socket send = new Socket("localhost", 1490);
        DataOutputStream out = new DataOutputStream(send.getOutputStream());
        String message = null;
        while ((message = buffer.get()) != null){
            out.writeBytes(message);
        }
        out.close();
        send.close();
    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

服务器没有收到该字符串,但是当我这样做时它可以正常工作:

    try {       

        String message = null;
        while ((message = buffer.get()) != null){
            Socket send = new Socket("localhost", 1490);
            DataOutputStream out = new DataOutputStream(send.getOutputStream());
                    out.writeBytes(message);
            out.close();
            send.close();
        }

    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

显然我不想继续打开和关闭套接字。问题是什么?


每次要发送数据包时,您都需要刷新套接字。 关闭套接字会强制自动刷新,这解释了为什么数据在套接字关闭时发送。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 writeBytes 的 Java 客户端套接字 的相关文章

随机推荐

  • 性能计数器实例名称与进程名称

    我正在连接到各种性能计数器Process类别 我正在使用以下 c 方法来确定实例名称获取计数器时使用 private const string categoryName Process private const string proces
  • OSM:将球面墨卡托投影坐标“EPSG:900913”转换为“EPSG:4326”坐标

    我正在使用带有图层的地图 来自示例 var lonLat new OpenLayers LonLat 40 4088576 86 8576718 transform new OpenLayers Projection EPSG 4326 t
  • Django 3.1:带有异步生成器的 StreamingHttpResponse

    Django 3 1 文档 https docs djangoproject com en 3 1 topics async async views 7E text The 20main 20benefits 20are 20the 20a
  • 从 HealthKit 监控心率 --> HKAnchoredObjectQuery 仅在 applicationDidBecomeActive 之后调用(BUG 或 FEATURE?)

    我正在编写一个简单的应用程序 每当将新的健康率值写入 HealthKit 时 就可以从 HealthKit 监控心率 HKQuantityTypeIdentifierHeartRate 正如在 WWDC2015 第 203 场会议 上看到的
  • OpenQA.Selenium.WebDriverException: '未知错误: ChromeDriver 在通过 C# Selenium 发送表情符号时仅支持 BMP 中的字符

    我正在尝试向按键发送表情符号 我尝试通过处理信号 来发送它 但它引发了此异常 OpenQA Selenium WebDriverException unknown error ChromeDriver only supports chara
  • 将 timeout() 与 retryWhen() 结合起来

    我正在创建一个简单的应用程序 用于使用 RxAndroidBle 库连接蓝牙设备 干杯 大家干得好 我遇到的情况是 有时当我连接到设备时 我会收到状态为 133 的 Gatt 错误 我知道这可能会发生 所以我想做的就是在发生错误时重试所有操
  • 按成员列表的长度对列表列表进行排序

    我有来自作为 S4 对象类型的包 apcluster 的输出 其中一个成员是确定找到的每个簇的成员的列表列表 我想按长度 最大的簇 对该列表进行排序 我的代码现在看起来像 ap result lt apcluster args cluste
  • instanceof 与 getClass( )

    我发现使用时性能有所提高getClass and 运算符结束instanceOf操作员 Object str new Integer 2000 long starttime System nanoTime if str instanceof
  • 如何在调试中查看活动堆栈?

    我遇到一个问题 我的一项活动在之后弹出I think我完成了 有没有办法查看活动的堆栈 1 You can use Hierarchy Viewer within Eclipse You can see all connected devi
  • in_array 与 isset - 性能

    考虑以下代码片段 例子 1 array Array 1 2 3 4 5 6 7 array test Array 3 5 4 7 3 6 7 8 8 9 3 foreach array test as value if in array v
  • D3 沿路径段过渡并在坐标值处暂停

    我希望能够单击一个圆 坐标点 将标记带到圆圈的位置并在圆圈的位置暂停 然后沿着路径再次恢复 此外 我想在标记暂停在其上时激活一个圆圈 单击它们 或单击其 Voronoi 单元格 我的目的是最终为圆坐标提供一个点击功能 我想我需要将路径坐标的
  • 如何在VBA中给单元格填充颜色?

    我想为当前工作表中具有 N A 值的单元格着色 为了做到这一点 我使用以下宏 Sub ColorCells Dim Data As Range Dim cell As Range Set currentsheet ActiveWorkboo
  • 替换 pytest 中的测试用例继承?

    背景 在 Python 中unittest https docs python org 3 library unittest html在框架中 在一组基本测试上使用继承来将整套测试应用于新问题 并且偶尔添加其他测试是一种相当常见的习惯用法
  • AddKeysToAgent 是 ssh 配置在 Mac 上不起作用

    您好 我的 ssh 配置文件设置为自动将 ssh 密钥添加到 ssh 代理 然而 目前它不起作用 它之前正在工作 我更新了 bitbucket 的 ssh 密钥 但它不再起作用 当我重新启动时 我必须使用 ssh add K 选项手动添加
  • C++地址运算符的用途? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么要使用指针 https stackoverflow com questions 162941 why use pointers 我知道 C 的作用 但它能用来做什么呢 当在调用站点使用时 用于将
  • Python 元组列表到 int 列表

    所以我有x 12 1 3 元组列表 我想要x 12 1 3 整数列表 以最好的方式可能 你能帮忙吗 你没有说 最好 是什么意思 但大概你的意思是 最Pythonic 或 最易读 或类似的东西 F3AR3DLEGEND 给出的列表理解可能是最
  • 你应该捕获所有异常吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 PopUp 插件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试搜索插件 jquery 来创建评论弹出窗口 但我不知道如何使用它以及支持 Popup 的插件是什么 任何人都可以帮我展示简单的代码并
  • 如何将两个矩阵的列与所有组合相乘

    我喜欢将具有相同行的两个矩阵的列的所有可能组合相乘 这意味着两个矩阵 例如a 3x3 and b 3x4 将生成带有元素的 3x4 矩阵a i j a k j i and k表示从 1 到 3 的行 并且j代表从 1 到 4 的列 我创建了
  • 使用 writeBytes 的 Java 客户端套接字

    我正在从缓冲区读取字符串并将其写入服务器 我遇到的问题是 当我打开套接字并循环写入时 服务器永远不会收到该字符串 当我使用这个时 try Socket send new Socket localhost 1490 DataOutputStr