Python程序(Pc上的服务器)和android应用程序(使用android studios构建的客户端)之间的TCP套接字

2024-04-25 04:12:40 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在尝试在python代码(作为Pc上的服务器)和android应用程序(作为使用android studios构建的客户端)之间实现TCP套接字

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上的互联网权限,但我无法建立他们之间的通信…..请帮助,因为我是新来的


Tags: importviewnewclosebinderrorsocketandroid