Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Java服务器与Python客户端连接_Java_Python_Client Server_Python Sockets - Fatal编程技术网

将Java服务器与Python客户端连接

将Java服务器与Python客户端连接,java,python,client-server,python-sockets,Java,Python,Client Server,Python Sockets,所以这里有一件事,我有一个基本的java服务器,它将从客户端接收到的信息发送回客户端。客户端是用python编写的。我能够建立第一个连接,因为服务器会向客户端发送确认连接的消息。但是,当我希望客户端向服务器发送信息时,它什么也不做。我不确定是客户端未发送问题还是服务器未接收问题 以下是服务器的代码: int portNumber = Integer.parseInt(args[0]); try ( ServerSocket serverSocket = new

所以这里有一件事,我有一个基本的java服务器,它将从客户端接收到的信息发送回客户端。客户端是用python编写的。我能够建立第一个连接,因为服务器会向客户端发送确认连接的消息。但是,当我希望客户端向服务器发送信息时,它什么也不做。我不确定是客户端未发送问题还是服务器未接收问题

以下是服务器的代码:

    int portNumber = Integer.parseInt(args[0]);

    try ( 
        ServerSocket serverSocket = new ServerSocket(portNumber);
        Socket clientSocket = serverSocket.accept();
        PrintWriter outs =
            new PrintWriter(clientSocket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(
            new InputStreamReader(clientSocket.getInputStream()));
    ) {

        String inputLine, outputLine;


        outputLine = "Hello socket, I'm server";
        outs.println(outputLine);
        outs.println("I' connected");
        while ((inputLine = in.readLine()) != null) {
             outputLine = inputLine;
            outs.println(outputLine);
            if (outputLine.equals("Bye."))
                break;

        }

    } catch (IOException e) {
        System.out.println("Exception caught when trying to listen on port "
            + portNumber + " or listening for a connection");
        System.out.println(e.getMessage());
    }
}  }
这是客户:

import socket

HOST = "localhost"
PORT = 8080

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
print (socket.getaddrinfo(HOST,PORT))
buffer_size = 100

while True :  
    data = sock.recv(buffer_size)     
    print ('you recieved :' , data)
    test = input('send here\n')     
    sock.sendall(bytes(test, 'utf-8'))
    print ('you sent : ' , test)
在Python客户端中:
您的提示包含一个
\n
,但输入的结果不包含?在发送之前,尝试将
\n
添加到
测试中。

对Java API使用
RESTful
和对python客户端使用
请求
不是简单的方法吗?我不知道。但是你能解释一下我在使用这个代码时到底出了什么问题吗?我怀疑
\n
不知怎么被破坏了。但是我不熟悉Python。只是查找了
input
-因此您的提示符包含
\n
,但是结果是否来自input?尝试在发送前添加一个
\n
测试。你是对的@费尔多。我做到了,非常感谢。