Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
套接字将java(android)写入python_Java_Android_Python_Sockets - Fatal编程技术网

套接字将java(android)写入python

套接字将java(android)写入python,java,android,python,sockets,Java,Android,Python,Sockets,我想创建一个超级基本的Android应用程序,它可以连接到在我电脑上运行的python服务器,但python服务器永远无法连接 我的java代码: public class WriteToSocket { Socket sock; public void Test() { try { this.sock = new Socket("PCName", 9871); } catch (UnknownHostException e) { System

我想创建一个超级基本的Android应用程序,它可以连接到在我电脑上运行的python服务器,但python服务器永远无法连接

我的java代码:

public class WriteToSocket {
Socket sock;

public void Test() {
    try {
        this.sock = new Socket("PCName", 9871);

    } catch (UnknownHostException e) {
        System.out.println("Unknown host: PCName");
        System.exit(1);
    } catch (IOException e) {
        System.out.println("No I/O");
        System.exit(1);
    }
}

public void Test1(){
    try {
        this.sock.close();
    } catch (IOException e) {
        System.out.println("No I/O");
        System.exit(1);
    }
}

我的python服务器是

import socket

sock = socket.socket()
name = "PCName"
port = 9871

sock.bind((name,port))
sock.listen(1)
s,a = sock.accept()
我希望在python服务器点击按钮接受连接后,我也尝试将PCName更改为127.0.0.1


我环顾四周,但到目前为止没有任何帮助:S

android手机不知道PCName是什么,将python代码中的PCName更改回“127.0.0.1”,然后在android项目中输入服务器的本地IP地址


当然,这是假设手机和服务器都在同一个本地网络上。

将服务器套接字绑定到可以从android访问的PC的IP地址之一,而不是127.0.0.1。或者将其绑定到所有可用接口0.0.0.0

然后从android连接到该IP

例如,如果您的电脑具有IP地址1.2.3.4,则在两种应用程序中都使用此IP

使用netstat查看您的电脑上的端口是否真正打开

检查您的android应用程序是否具有使用清单中指定的internet的权限:USES_internet或类似的东西


此外,python脚本在建立连接后会立即丢弃连接。

在python中将绑定地址更改为0.0.0.0。它将绑定连接到您机器的所有IP。然后在android应用程序中更改为正确的计算机IP


IP 127.0.0.1是一个,您无法从系统外部连接到它。

我将java更改为this.sock=new Socket10.0.0.59871;python扩展到127.0.0.1,但仍然不能在同一个网络上工作。嗯,是否捕获了任何异常?如果没有,您确定没有进行连接吗?您可以尝试在python代码printReceived连接中的sock.accept之后添加它,该连接来自%s%a事实上,现在我查看了仿真器,发现了一个异常,但我不知道如何知道是哪个异常,因为它正在仿真器上运行:s绑定到python端的本地环回地址时,您将永远无法从android连接。@Hyperboreus我已将本地环回更改为0.0.0.0,现在的问题是android应用程序捕捉到异常,但这并没有发生,其全部目的是确保我可以连接两个设备。您是否检查了上述步骤?我检查了,在再次查看android应用程序后,发现了一个异常,但我不知道如何知道是哪个异常,因为它在模拟器上运行。这与在模拟器上运行它有什么关系?检查模拟器的标准输出。或者使用Toast而不是System.out.println。或者登录到logcat并查看它。或者使用调试器…@Shay您是否在清单中指定了网络访问权限?
import socket

sock = socket.socket()
name = "PCName"
port = 9871

sock.bind((name,port))
sock.listen(1)
s,a = sock.accept()