繁体   English   中英

什么是python的getInputStream()和getOutputStream()等效项?

[英]what is python equivalent of getInputStream() and getOutputStream()?

我有用Java编写的代码,因为我不知道Java想使用python建立套接字连接,但是我无法理解python等效于Java的getInputStream()和getOutputStream()吗? 以及如何在python中使用它? 接下来,您可以找到我已经在python中编写的代码。

  import socket
    try:
        resMsg = None
        myClient = None
        myClient = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        ip = socket.gethostbyname("usddcwvtrkjxts3")
        #print(ip)
        port = 3450

        address = (ip, port)
        myClient.connect(address)
        data = myClient.recv(1024)
        print(data)
    except:
        print("connection failed")

我已经用Java编写了以下代码:

        public String invoke(String requestMsg) {
            String resMsg = null;
            Socket myClient = null;
            DataInputStream input = null;
            PrintWriter output = null;
            try {
                try {
                    myClient = new Socket("vwddtrkjxts002", 3450);
                    input = new DataInputStream(myClient.getInputStream());
                    output = new java.io.PrintWriter(myClient.getOutputStream(), true);
                    output.println(requestMsg);
                    output.write("\u001A");
                    output.flush();
                    StringBuffer message = new StringBuffer();
                    try {
                        while (true) {
                            message.append((char) input.readByte());
                        }
                    } catch (EOFException e1) {
                    }

                    resMsg = message.toString();
                    System.out.println(resMsg);
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    output.close();
                    input.close();
                    myClient.close();

                } catch (IOException e) {
                    System.out.println(e);
                }
            }
            return resMsg;
        }

我能够与python建立连接,但无法将任何内容打印为输出。

任何建议都会有所帮助! 先感谢您

你可以在这里查看一个好的教程

综上所述,

  • 作为客户端发起连接的客户端,一旦建立连接,就可以使用套接字对象的recv()和send()方法来接收和发送信息
  • 作为服务器,您绑定到端口并开始侦听。 一旦accept()方法返回,便有了对象,可以在其上调用recv并发送类似于客户端的方法

我认为listen()函数就是您所需要的。

样例代码:

import socket

HOST = '127.0.0.1'  # Standard loopback interface address (localhost)
PORT = 65432        # Port to listen on (non-privileged ports are > 1023)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()

这是python套接字的工作方式:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM