TCP-сокет между программой Python (сервер на ПК) и приложением для Android (клиент построен с использованием Android-студий) - PullRequest
1 голос
/ 20 марта 2019

Привет, я пытаюсь реализовать сокет TCP между кодом Python (как сервер на ПК) и Android-приложение (как клиент, построенный с использованием Android-студий)

import socket
import sys

HOST = '192.168.1.10'
PORT = 8888

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print ('socket created')

#Bind socket to Host and Port
try:
    s.bind((HOST, PORT))
except socket.error as err:
    print ('Bind Failed, Error Code: ' + str(err[0]) + ', Message: ' + err[1])
    sys.exit()

print ('Socket Bind Success!')


#listen(): This method sets up and start TCP listener.
s.listen(10)
print ('Socket is now listening')


while 1:
    conn, addr = s.accept()
    print ('Connect with ' + addr[0] + ':' + str(addr[1]))
    buf = conn.recv(64)
    print (buf)

s.close()

и основной активности Android как

package com.example.aneshkagoyal.socket;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class MainActivity extends AppCompatActivity {
    EditText t1;
   // String str;
    Button b1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        t1 = findViewById(R.id.msg);
        //str = t1.getText().toString();
        b1 = findViewById(R.id.button);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new Longrunning().execute(t1.getText().toString());

            }
        });

    }

    private class Longrunning extends AsyncTask<String,Void,Void>{
             Socket s;
             PrintWriter pw;
        @Override
        protected Void doInBackground(String... voids) {
            try {
                s = new Socket("192.168.1.10", 8888);
                pw = new PrintWriter(s.getOutputStream());
                pw.write(voids[0]);
                pw.flush();
                pw.close();
                s.close();
            }
            catch (IOException e){
                Log.e("error","error");
                e.printStackTrace();
            }

            return null;
        }
    }
}

Я дал пользователю разрешение на доступ в Интернет на Android, но я не могу установить связь между ними…., Пожалуйста, помогите, поскольку я новичок в этом

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