无法在套接字上使用 BufferedReader/Writer 发送和接收数据

2023-11-29

我正在制作一个客户端-服务器应用程序,并使用以下代码在服务器和客户端之间交换数据。

服务器的发送和接收代码:

public void run() {
     try {
        BufferedReader input = new BufferedReader(new InputStreamReader(socketNew.getInputStream()));
        String message=input.readLine();
        while(message.length()!=0)
        {
            for(Socket s:socs) //socs is a list containing all the connected sockets
            {
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                writer.write(message);
            }
        }

     } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

  }

客户端发送方法:

private void send_data() {

    BufferedWriter writer;
    try {
        writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        writer.write(this.name+textField.getText());
        textField.setText("");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

客户端接收方法:

public  void receive_data(){
    BufferedReader input;
    try {
        input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String message=input.readLine();
        while(message.length()!=0)
        {console(message);}
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

我没有在服务器和客户端之间进行任何数据交换。有人可以帮助我吗?


您正在遭受缓冲的困扰:消息被写入缓冲区中并且可能从未发送。刷新写入器以确保它发送数据:

    writer.write(...);
    writer.flush();

另外,BufferedReader.readLine 读取行。行必须以换行符结束,例如\n。目前尚不清楚您是否发送换行符。

另外,这是一个无限循环:

    String message=input.readLine();
    while(message.length()!=0) {
        /* code that does not modify message */
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在套接字上使用 BufferedReader/Writer 发送和接收数据 的相关文章

  • 使用 Guice 注入类集合

    我正在尝试用 Google Guice 2 0 注入东西 我有以下结构 FooAction implements Action BarAction implements Action 然后我有一个带有以下构造函数的 ActionLibrar
  • 如果列名不同,则一对多休眠连接

    我有三个具有以下结构的表 合同 gt Contract id 主要 customer company id Vendor company id 公司 gt Company id 主要 创建日期 创建者 Company Timeline gt
  • 如何提取文件 jre-9/lib/modules?

    In JRE 9 lib目录 至少在 Windows 上 有一个名为modules其大小约为107 MB 是否可以提取该文件或在其中列出 java 模块 我可以看到一个名为jmod可以在jdk 9 bin jmod exe 但那是为了阅读
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • OpenNLP 与斯坦福 CoreNLP

    我一直在对这两个包进行一些比较 但不确定该往哪个方向走 我简单地寻找的是 命名实体识别 人 地点 组织等 性别识别 一个不错的训练 API 据我所知 OpenNLP 和斯坦福 CoreNLP 提供了非常相似的功能 然而 Stanford C
  • 使用 JAX-WS 的 WebLogic 中没有模式导入的单个 WSDL

    如何使用 JAX WS 配置由 WebLogic 10 3 6 生成的 Web 服务 以将对象架构包含在单个 WSDL 文件声明 而不是导入声明 中 示例代码 界面 import javax ejb Local Local public i
  • 需要正则表达式帮助

    我正在尝试替换两次或多次出现的 br like br br br 标签与两个一起 br br 具有以下模式 Pattern brTagPattern Pattern compile lt s br s s gt s 2 Pattern CA
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • 如何在 Bean Validation 1.0 中构造 ConstraintViolationException?

    我对 javax validation API 感到困惑 我正在编写一个简单的测试来理解它 Sample sample new Sample Set
  • 配置jmxremote时无法正常停止tomcat

    我添加了一个jmxremotecatalina bat中的配置 set JAVA OPTS Dcom sun management jmxremote port 9004 Dcom sun management jmxremote ssl
  • Jetty Plugin 9启动不喜欢icu4j-2.6.1.jar

    我对 mortbay 的 Maven jetty 插件 6 有相同的配置
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • JPA 将 BigDecimal 作为整数保存在数据库中

    我在数据库中有这个字段 ITEMCOST NUMERIC 13 DEFAULT 0 NOT NULL 在JAVA中 Entity中的字段定义如下 Column name ITEMCOST private BigDecimal itemCos
  • 如何将库添加到 LIBGDX 项目的依赖项 gradle

    一切都在问题中 我已经尝试了在 SO 和其他网站中找到的所有答案 但没有运气 这就是我迄今为止尝试过的 adding compile fileTree dir lib include jar 到我的 build gradle adding
  • 在 Freemarker 模板中检查 Spring 安全角色和记录的用户名

    有谁知道 freemarker 标签来检查 freemarker 文件中的 spring 安全角色和用户名 我从网络上的几个资源中发现以下代码将打印登录的用户名 但它没有打印用户名 而是打印 登录为
  • Java 中的微分方程

    我正在尝试用java创建一个简单的SIR流行病模型模拟程序 基本上 SIR 由三个微分方程组定义 S t l t S t I t l t S t g t I t R t g t I t S 易感人群 I 感染人群 R 康复人群 l t c
  • 使用自定义比较器在 Java 中创建 SortedMap

    我想创建一个TreeMap在 Java 中具有自定义排序顺序 排序后的键是字符串 需要根据第二个字符进行排序 这些值也是字符串 示例地图 Za FOO Ab Bar 您可以像这样使用自定义比较器 Comparator
  • Android Google 地图无法在当前主题中找到样式“mapViewStyle”

    添加谷歌地图视图时 我扩展了MapView 使用xml编辑器将其添加到活动中 并将我的谷歌地图api密钥手动添加到布局xml文件中 我的权限在清单文件中允许互联网 我想知道的是 在 xml 编辑器中 我收到错误 无法在当前主题中找到样式 m
  • 如何使用 Jest 从 ElasticSearch 获取索引列表

    我正在尝试使用 Jest 检索索引列表 但我只得到 Stats statistics new Stats Builder build result client execute statistics 如何从结果中检索索引列表 除了统计之外
  • 使用 AmazonSNSClient 发送短信时的授权

    aws 官方文档如何发送短信 http docs aws amazon com sns latest dg sms publish to phone html使用 java 中的 aws SDK 非常简单 但是 当发送如底部示例所示的消息时

随机推荐

  • 内置管理员帐户无权执行 Windows 10 中的某些操作

    在某个时候 我开始在 Windows 10 中遇到以下问题 当我尝试运行编译的 Windows 通用应用程序时 Microsoft Visual Studio 15 显示以下错误 无法激活 Windows 应用商店应用程序 激活请求失败 出
  • 如何传递承诺数组而不调用它们?

    我尝试将 axios 数组 如承诺 传递给函数 当我调用该方法时 我需要执行这些承诺 const arrayOfAxios axios https api github com setTimeout gt console log befor
  • 构建后无法在本地执行 Angular 应用程序

    我正在研究 Angular 的 CLI 工具 当我执行时 ng serve 该应用程序已上线并且运行良好 现在 我想将其分发到广网上并尝试通过以下方式构建它 ng 构建 verbose 这似乎有效 因为我没有看到任何错误或警告 但是 当我输
  • Firebase FCM:无效参数

    我是第一次尝试 FCM 所以只使用他们的示例代码 事实上 我什至正在发送他们的示例消息 以下代码直接来自文档 除了来自示例消息传递 android 工具的令牌 失败 exports onBroadcastCreated functions
  • 使用 os.system() 或 subprocess.call() 时如何隐藏控制台?

    我写了一些如下的声明 os system cmd do something subprocess call taskkill F IM exename exe 两者都会弹出一个控制台 如何阻止它弹出控制台 过程STARTUPINFO可以隐藏
  • 从其他对等方查询时“链码指纹不匹配”

    我在几台服务器上建立了一个网络 在其中一台服务器上 编译后的链码始终与其他服务器上的链码不同 从而导致以下消息 Error Error endorsing query rpc error code Unknown desc Error ex
  • 如何在 SQL Server 中重命名 XML 节点名称

    我的数据库中有一个表 其中有一列存储 XML 数据 由于源代码的更改 我们想要重命名一个特定的 XML 节点名称和 XML 命名空间 假设我有以下 XML
  • 在 TCL 中比较两个列表的正确方法是什么?

    我是 TCL 的新手 我编写了以下代码 set list1 1 2 3 4 set list2 1 2 8 1 if lindex list1 0 lindex list2 0 puts They are equal 但是当我打印子列表元素
  • 无法从另一个类python访问变量

    这是我的代码 应该从 设置 类中打印 self cake 和 self age from startup import Settings class Profile Settings def init self super Profile
  • 警告:赋值使指针来自整数而不进行强制转换

    这是一个很常见的问题 但我还没有得到答案 所以再次询问 我将结构体定义为 struct f lock int x struct f lock next 然后说我有一个功能 struct f lock new node struct f lo
  • docker-compose 中“无法连接到本地 MySQL 服务器”

    我有带有 MySQL 的 Laravel 应用程序 我正在尝试使用 docker compose 在 Docker 中运行它 但是当应用程序尝试连接数据库时 它会抛出 Connector php 第 55 行中的 PDOException
  • 使用 mod_rewrite 重定向和重写

    问完这个问题后 用于搜索查询的干净 URL 我尝试使用 mod rewrite 进行一些操作 RewriteCond QUERY STRING s a z NC RewriteRule s 1 NC R 301 L RewriteRule
  • 使用滑块更新散景图

    我正在尝试使用滑块来更新我的散景图 我发现使用 pandas dataframe 很难实现它 到目前为止没有找到任何例子 另一种方法是使用 columndatasource 在论坛上找到了一些示例 但仍然无法实现该功能 所以我有两列 X 轴
  • 如何正确等待 execve 完成?

    C 源代码 在 Linux Centos 6 3 上编译并运行 包含以下行 execve cmd argv envp execve不返回 但我想修改代码以知道它何时完成 所以我这样做 if child fork waitpid child
  • 使用 pybind11 嵌入 python。虚拟环境不起作用

    我正在尝试制作一个简单的 C 应用程序 它使用以下命令翻译短语googletranspython 库 所以我选择了pybind11为此目的嵌入Python 我还使用 cmake 进行代码配置 当我使用全局 python 安装时 一切正常 但
  • 使用 eigen3/sparse 的稀疏特征值

    是否有一种独特且有效的方法来查找实数 对称 非常大 比如说 10000x10000 的稀疏矩阵的特征值和特征向量Eigen3 有一个用于稠密矩阵的特征值求解器 但它没有利用矩阵的属性 例如这是对称性 此外 我不想将矩阵存储为密集的 或者 替
  • 用 C++ 制作简单的跨平台 GUI 的最佳方法是什么? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想制作一个带有非常简单的 GUI 背景图形 取消按钮和进度条 的桌面应用程序 我的主要目标是 Mac 和 Windows 使用 Visual C 2008 可以吗 任何人都可以
  • 使用 CasperJS 实现页面对象模式

    有没有人已经用 casperjs 实现了著名的 页面对象模式 从长远来看 它对于测试可维护性非常有用 当您必须将测试的机制和目的分开时 使用它非常非常酷 以这种方式编写测试会变得更加愉快 有一些 ruby 和 selenium 的例子 ht
  • 列表理解/生成器中的海象赋值表达式

    我试图传递每个元素foo list变成一个函数expensive call 并获取其输出为的所有项目的列表expensive call是诚实的 我正在尝试用列表理解来做到这一点 这可能吗 就像是 像这样的事情 result list y e
  • 无法在套接字上使用 BufferedReader/Writer 发送和接收数据

    我正在制作一个客户端 服务器应用程序 并使用以下代码在服务器和客户端之间交换数据 服务器的发送和接收代码 public void run try BufferedReader input new BufferedReader new Inp