я пытаюсь подключить код Python к коду Java, но он поставил мне ConnectionRefusedError - PullRequest
0 голосов
/ 12 октября 2019

Сначала код Java отправляет сообщение в код Python, а после того, как код Python должен отправить сообщение, но когда он отправляет сообщение, он говорит, что код Java, от которого отказывается его программа с Android Studio, не знает, почемуположить это моя ошибка, потому что в коде Java я написал принять.

Я уже заглядываю в интернет, но не понимаю, почему в коде написано, что он отказывается от приглашения в сокет программы Python.

Java-код

try {
    sock = new Socket("192.168.5.178", 5000);

    printWriter = new PrintWriter(sock.getOutputStream());
    printWriter.write("hello world");

    String line="";
    printWriter.close();
    printWriter.flush();
    sock.close();
    socketserveur = new ServerSocket(5000);

    while (!line.equals("Over")) {
        try {
            client = socketserveur.accept();
            InputStream input = sock.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));
            line = reader.readLine();// reads a line of text
            t3.setText(line);
        } catch(IOException i) {
            System.out.println(i);
        }
    }

Python-код

# -*- coding: utf-8 -*-
"""
Created on Wed Sep 18 20:01:14 2019

@author: Rapha
"""

import socket        
host, port = ('',5000)
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)


#face_cascade = cv2.CascadeClassifier('cascade/data/haarcascade_frontalface_alt.xml')
#recognizer = cv2.face.LBPHFaceRecognizer_create() 
o=False

while o==False:
    try:
        socket.bind((host, port))

        print("le serveur est démarré! o = true")           
        o=True

    except OSError:

        o=False
    finally:
        if(o is not False):
            o=True


socket.listen(5)
conn, adress = socket.accept()
print("listening")
data= conn.recv(2048)
print("h" )
socket.close()
conn.close()
def client(data):
    import socket

    print("___clien__")

    host, port = ('192.168.5.192',5567)

    print("send___")

    socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    o=False 

    print("o")

    print(o)            

    socket.connect((host, port))
    o=True

    print("except")

    data=(str(impdata2)+"<c>ip"+str(impip))
    print(data)
    data = data.encode("utf8")

    socket.sendall(data)

    print("send2"+str(impdata2))

    print("Error no connection")

    socket.close()    
client("hello")

1 Ответ

0 голосов
/ 12 октября 2019

Обычно ошибка соединения отклонена на стороне клиента, когда вы пытаетесь получить доступ к серверу, который не включен / не активен.

Теперь ваша сторона Java пытается выполнить запись на стороне Python на 192.168. 5.178: 5000

Но на вашей стороне Python это

host, port = ('',5000)

Полагаю, вы должны указать значение ip.

Также в вашем клиентеФункция Python, вы пытаетесь записать на сервер с 192.168.5.192:5567

, так что это должен быть сервер Java.

Но ваш сервер Java работает на порт 5000

socketserveur = new ServerSocket(5000)

, поэтому измените свой порт следующим образом:

socketserveur = new ServerSocket(5567)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...