как подключиться с публичного IP адреса с сокетом - PullRequest
0 голосов
/ 25 октября 2019

Я хочу сделать сокет, который подключается к другому компьютеру, который не подключен к тому же маршрутизатору, кто-то сказал мне, что для этого мне нужно отправить сокет с публичным IP-адресом, который я пробовал, но он не подключен к компьютеру. поэтому я думаю, что мне нужно внести некоторые изменения, потому что у меня есть код, который работает для отправки данных через сокет, и я поставил обычный IP-адрес

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")
print(adress)
data= conn.recv(2048)
print("h" )
print(data)
socket.close()

и клиент

 try {
                handler.post( new Runnable() {

                    @Override


                    public void run() {
                        Toast.makeText(getApplicationContext(),"start client", Toast.LENGTH_LONG).show();
                    }
                } );
                WifiManager manager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
                ip = Formatter.formatIpAddress(manager.getConnectionInfo().getIpAddress());
                String mess = h[0];
                String messag_send=(mess+"<ip>"+ip);


                sock = new Socket( "public ip adresse", 5000 );


                printWriter = new PrintWriter( sock.getOutputStream() );


                printWriter.write(messag_send);


                String line = "no";
                printWriter.flush();
                printWriter.close();
                sock.close();
            } catch (UnknownHostException e) {
                e.printStackTrace();

            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

, еслиу вас есть другое решение для отправки данных с сокетом на компьютерах, которые не находятся на том же маршрутизаторе, мне будет интересно. спасибо за помощь.

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