Почему JAVA BufferedReader не может получить String от клиента Python после отправки String с помощью PrintWriter? - PullRequest
0 голосов
/ 21 февраля 2019

Я пишу коды, которые Python-клиент отправляет String, а JAVA-сервер получает их, а затем JAVA-сервер отправляет String, а Python-клиент получает их.

Но я не могу добавить строку кода, которую Python-клиент отправляет String и JAVA-серверуполучает его снова.

Я использую BufferedReader для получения входного потока и чтения его с использованием readLine и utf-8.И я использую PrintWriter для получения выходного потока и отправки строки, но когда я использую BufferedReader после PrintWriter, я не могу получить строку от клиента Python.

Почему JAVA BufferedReader не может получить строку от клиента Python после отправки строки с помощьюPrintWriter?

Ниже приведены мои коды.

Код сервера JAVA:

package solution;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class sol {

    public static void main(String[] args) {
        try {
            ServerSocket server = new ServerSocket(8000);
            Socket socket = server.accept();

            BufferedReader br = new BufferedReader(
                    new InputStreamReader(
                            socket.getInputStream(), "UTF-8"
                    )
            );

            String a, b, c, d;

            a = br.readLine();
            b = br.readLine();
            c = br.readLine();

            System.out.println(a);
            System.out.println(b);
            System.out.println(c);

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

            pw.print("Hello");

            d = br.readLine(); // I can't receive? read? String from Python client..

            System.out.println(d);

            pw.close();
            br.close();
            socket.close();
            server.close();
        } catch(IOException e) {
            e.printStackTrace();
        }
    }

}

Код клиента Python:

from socket import *
from select import select

HOST = '' // sorry it is my ip
PORT = 8000

client = socket()

try:
    client.connect((HOST,PORT))

    client.sendall(bytes("A\nB\nC\n", encoding = 'utf8'))

    data = client.recv(1024)
    data = data.decode()
    print(data)

    client.send(bytes("D\n", encoding = 'utf8'))

    client.close()
except Exception as e:
    print(e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...