连接python套接字和java套接字

2023-11-25

我一直在尝试在 Java 客户端套接字和 Python 服务器套接字之间发送一个简单的字符串。这是服务器套接字的代码:

HOST=''
PORT=12000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADRR,1)
s.bind((HOST,PORT))
s.listen(5)
device=variador()
while True:

  conn,addr=s.accept()
  if data=="turn_on":
     respuesta=device.send_order(variador.start_order)
     conn.send(respuesta+'\n')
     conn.close()

客户端代码是:

   try {

            Socket socket = new Socket("192.168.10.171", 12000);

            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

            BufferedReader in = new BufferedReader(new InputStreamReader(
                                       socket.getInputStream()));    

            BufferedReader stdIn = new BufferedReader(
                                          new InputStreamReader(System.in));

            out.print(command);

            out.close();
            in.close();
            socket.close();

        } catch (UnknownHostException e) {
            System.err.println("Unknown Host.");
           // System.exit(1);
        } catch (IOException e) {
            System.err.println("Couldn't get I/O for "
                               + "the connection.");
          //  System.exit(1);
        }

一切正常,直到我尝试使用以下命令读取服务器的响应:

    String userInput;
  while ((userInput = stdIn.readLine()) != null) {
  out.println(userInput);
  System.out.println("echo: " + in.readLine());
  }

然后代码挂起,Python 服务器不会收到任何信息,我使用 print 对此进行了测试。

在Java客户端中尝试先发送然后等待服务器的响应是否有问题?

任何帮助都感激不尽。


好吧,我发现 Java 客户端挂起是因为 python 服务器发送的消息没有明确完成\r\n,所以 Python 代码应该是这样的:

HOST = ''
PORT = 12000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADRR, 1)
s.bind((HOST, PORT))
s.listen(5)
device = variador()
while True:

    conn, addr = s.accept()
    if data == "turn_on\r\n":
        respuesta = device.send_order(variador.start_order)
        conn.send(respuesta + '\r\n')
    conn.close()

我知道从 Java 中方法的名称中应该已经很明显了,readline() and println,都表明 java 以序列结束字符串\r\n

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

连接python套接字和java套接字 的相关文章

  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • Java 收集返回顶级项目的映射的嵌套流

    我有以下模型 class Item String name List
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 使用 NumPy 将非均匀数据从文件读取到数组中

    假设我有一个如下所示的文本文件 33 346 1223 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 无法捕获 Spring Batch 的 ItemWriter 中的异常

    我正在编写一个 Spring Batch 流程来将数据集从一个系统迁移到另一个系统 在这种情况下 这就像使用RowMapper实现在传递给查询之前从查询构建对象ItemWriter The ItemWriter称为save我的 DAO 上的
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • Java:拆箱整数时出现空指针异常?

    此代码导致空指针异常 我不知道为什么 private void setSiblings PhylogenyTree node Color color throws InvalidCellNumberException PhylogenyTr
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • 具有自定义值的 Django 管理外键下拉列表

    我有 3 个 Django 模型 class Test models Model pass class Page models Model test models ForeignKey Test class Question model M
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • JAXB - 列表<可序列化>?

    我使用 xjc 制作了一些课程 public class MyType XmlElementRefs XmlElementRef name MyInnerType type JAXBElement class required false
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐

  • 通过 html 按钮更改变量

    我正在学习 javascript 我决定创建简单的石头剪刀布游戏 我想让它可以通过按钮控制 所以我用html做了这个 div div
  • 如何使用 UIWebView 加载包含哈希片段“#”的 NSURL?

    给定一个本地 URL 地址 例如 index html 现在我需要使用UIWebView将其加载到 iPad 中 我按照以下步骤操作 创建 NSURL NSURL url NSURL fileURLWithPath http mysite
  • 如何使用 xQuery 对转义的 XML 进行取消编码

    我在 xQuery 中有一个类型为 xs string 的变量 其值为编码的 HTML 片段 twitter 推文的内容 它看起来像这样 今日头条美联社来源 b 奥巴马 b 挑选 司法职位撤回 新闻 休息 世界 http shar es m
  • Swift:如何从我的应用程序到 iBooks 打开本地 pdf

    我之前是用objective c的 下面的 Objective C 代码运行良好 in h property retain UIDocumentInteractionController docController 并以 m 为单位 NSS
  • 滚动到 ScrollView 中 TableLayout 的最后一行

    我想要一个动态表 在 ScrollView 中使用 TableLayout 随着时间的推移 由于用户交互而添加行 这工作正常 但是当我想使用滚动到表格末尾时fullScroll 它总是省略最后一行 也就是说 它会滚动 以便最后一个之前的一个
  • Powershell - 通过删除最后几个字符来重命名文件名

    我想删除多个文件名的最后 11 个字符 例如 我有这些文件名 ABCDE 2015 10 20 HIJKL 2015 10 20 MNOPQ 2015 10 20 RSTUV 2015 10 20 想将它们重命名为 ABCDE HIJKL
  • 将 linq 中的字符串转换为大数据库上的实体

    我想将 linq toEntity 中的字符串转换为 int 但 Convert ToInt32 和 int Parse 无法转换为 sql 我的数据库很大 无法将它们全部存入内存 超过 60k 记录并变得更大 我的查询是这样的 int m
  • 在 Django 网站中嵌入 Bokeh 图会导致空白页面且没有错误消息

    我正在尝试将 Bokeh 图嵌入到具有上传按钮的 Django 网站中 我正在使用给出的例子here作为起点 然后添加有关嵌入的说明here 这是我的问题的后续here因为我现在有一个新问题 当我转到与其关联的网址时 该图不会显示 但没有错
  • 如何在激活器中获取 IEclipseContext

    我在 Eclipse 4 RCP 应用程序中遇到了一个问题 我需要记录一些事件 我需要以某种方式获得对记录器的引用 我知道 如何使用IEclipseContext 但我没有找到如何获得IEclipseContext没有依赖注入 我无法在激活
  • UITableView reloadRowsAtIndexPaths 隐藏行

    我将 UITableView 与静态单元格一起使用 如果我使用reloadData 比一切都好 如果我尝试reloadRowsAtIndexPaths它隐藏行 如果我上下拖动 tableView 更新单元格时 就会出现行 如果您的表格单元格
  • 如何向应用主题添加CardView属性?

    我的问题类似于 如何将 CardView 属性放入样式中 但我需要更深入 我正在使用 AppCompat 主题 我的样式看起来像 style name AppTheme parent Theme AppCompat Light DarkAc
  • 使用C在Linux中获取用户组的正确方法

    我想知道是否有用于 unix 命令组的替代 C 库 groups lists all the group id s of the user 有一个名为 getgroups 的方法 但它返回此方法的用户组 有没有办法使用 C 获取特定用户的组
  • Typescript:在编译时在其自己的属性中获取类名

    例如 如果我们有一个这样的类 class MyClass className string 是否可以在编译时将 MyClass 分配给 className 属性 编辑 已经尝试过 this constructor name 然而 后者对缩小
  • Android:TimePicker setIs24HourView 不起作用

    我正在尝试以 24 小时格式使用 TimePicker 并且我正在使用 setIs24HourView true 但我仍然没有在 TimePicker 上获得 24 小时格式 这是我在 Activity 的 onCreate 中的代码 ti
  • Python While 循环突破问题

    我的问题是关于 while 循环的标志 这有效 但不像我想象的那样 我认为我不明白某些事情 所以如果有人能够解释 那就太好了 根据我的理解 一旦满足我的条件之一 这应该会打破循环 因此 如果我输入 q 它应该会中断并停止循环 但发生的情况是
  • Keycloak:缺少领域公钥

    当我访问 keycloak 管理控制台 远程 并创建客户端时 keycloak OIDC JSON 没有公钥 我希望 JSON 中有类似的内容 realm public key MIIBIjANBg 最新的 keycloak 中的 keyc
  • 如何为私有子网中部署的服务配置api网关?

    我在私有子网中部署了一个 Web 服务 而在公共子网中没有 ELB 现在我想把它曝光给公众 我可以使用API 网关作为http代理吗 公开 有人知道该怎么做吗 该服务必须是公开的 API Gateway 才能连接到它 您可以使用 SSL 客
  • 将单词拆分为所有可能的“子词” - 所有可能的组合

    我正在尝试将一个单词拆分为子单词 所有可能的排列 Input Bang Output B ang Ba ng Ban g B a ng B an g Ba n g B a n g 我希望我涵盖了所有可能的安排 Bang 的方法 我想了很久却
  • 使用 sed,在模式上方或下方插入一行? [复制]

    这个问题在这里已经有答案了 我需要通过在唯一模式的正下方或上方插入一行或多行来编辑大量文件 请建议如何使用sed awk perl 或其他任何东西 在外壳中 谢谢 例子 some text lorem ipsum dolor sit ame
  • 连接python套接字和java套接字

    我一直在尝试在 Java 客户端套接字和 Python 服务器套接字之间发送一个简单的字符串 这是服务器套接字的代码 HOST PORT 12000 s socket socket socket AF INET socket SOCK ST