Java客户端和python服务器连接

Java客户端和python服务器连接,java,android,python,android-studio,networking,Java,Android,Python,Android Studio,Networking,我正在android studio中开发一个应用程序,基本上我需要每当我点击一个特定的按钮时,它就会在java客户端和python服务器之间创建一个连接 当您进入特定按钮的页面\活动时,我首先检查了手机中是否有wifi连接。 它很好用。然后我试着这样做,但没有成功(重要的是,当前代码使我的手机和应用程序崩溃并停止) 简单服务器: HOST = '192.168.1.21' PORT = 9000 def main(): server_socket = socket.socket(so

我正在android studio中开发一个应用程序,基本上我需要每当我点击一个特定的按钮时,它就会在java客户端和python服务器之间创建一个连接
当您进入特定按钮的页面\活动时,我首先检查了手机中是否有wifi连接。
它很好用。然后我试着这样做,但没有成功(重要的是,当前代码使我的手机和应用程序崩溃并停止)
简单服务器:

HOST = '192.168.1.21'
PORT = 9000


def main():
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind((HOST, PORT))
    server_socket.listen(10)
    client_socket, client_address = server_socket.accept()
    print 'Connect with ' + client_address[0]
    data = client_socket.recv(1024)
    print "data :"
    print data
    print " end"
    if data == HOST+"/n":
        print 'hi'
    else:
        i = 0
        while i < 15:
            print i
            i += 1
    client_socket.close()
    server_socket.close()
if __name__ == '__main__':
    main()
我在AndroidStudio 3.0中读到,当你发送数据时,你需要创建一个线程。 您在此处看到的客户端类:

public class Client
{
    private Socket socket = null;
    private BufferedReader reader = null;
    private BufferedWriter writer = null;

    public Client(InetAddress address, int port) throws IOException
    {
        socket = new Socket(address, port);
        reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    }

    public void send(String msg) throws IOException
    {
        writer.write(msg, 0, msg.length());
        writer.flush();
    }

    public String recv() throws IOException
    {
        return reader.readLine();
    }

}
这可能只是一件简单的事情,我不知道,但这些是代码,我无法连接到服务器。我发现服务器工作得很好,因为如果我从手机连接到网络上的192.168.1.21,我会收到连接,它会在短时间内完成。 ty需要帮助-我想得到最简单的修复,因为我是java新手。
(如果有语法\拼写错误,请道歉)

编辑-故障日志

在日志的末尾,它显示NetworkOnMainThread。在您的代码中有一行
client.send(ip)
,在主线程执行的独立线程下面

如果你的应用程序崩溃-将崩溃日志添加到你的问题中。我上传了一张图片rn.1。复制粘贴日志比添加图像更好。2.python代码在这里是多余的。3.日志的最后一行指出,在调用“onClick”时,第59行出现问题。检查那条线,我知道。。只是想弄清楚问题出在客户身上。我会在单击时设法找出问题所在。基本上,当您单击它时,假设在客户端和服务器之间创建连接..一个小问题-当我将字符串从java发送到python时,它会添加\n?
public class Client
{
    private Socket socket = null;
    private BufferedReader reader = null;
    private BufferedWriter writer = null;

    public Client(InetAddress address, int port) throws IOException
    {
        socket = new Socket(address, port);
        reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    }

    public void send(String msg) throws IOException
    {
        writer.write(msg, 0, msg.length());
        writer.flush();
    }

    public String recv() throws IOException
    {
        return reader.readLine();
    }

}