Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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设备到PC';s插座连接_Java_Android_Sockets_Connection - Fatal编程技术网

Java Android设备到PC';s插座连接

Java Android设备到PC';s插座连接,java,android,sockets,connection,Java,Android,Sockets,Connection,我面临着从android设备到PC的一个特定端口(如8080)建立套接字连接的问题。我只想创建一个套接字,它将连接到特定的端口,并在该端口上写入一些数据流 我已经为此编写了一些代码,但代码给了我一个例外: TCP Error:java.net.ConnectException:/127.0.0.1:8080-connection refused 我给出的代码如下: private static TextView txtSendStatus; /** Called when the a

我面临着从android设备到PC的一个特定端口(如
8080
)建立套接字连接的问题。我只想创建一个套接字,它将连接到特定的端口,并在该端口上写入一些数据流

我已经为此编写了一些代码,但代码给了我一个例外:

TCP Error:java.net.ConnectException:/127.0.0.1:8080-connection refused
我给出的代码如下:

private static TextView txtSendStatus;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initControls();


        String sentence = "TCP Test #1n";
        String modifiedSentence;

        try {

            Socket clientSocket = new Socket("192.168.18.116", 8080);
            DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
            BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            printScr("TCP Connected.");

            outToServer.writeBytes(sentence + 'n');
            modifiedSentence = inFromServer.readLine();
            printScr(modifiedSentence);
            printScr("TCP Success !!!");

            clientSocket.close();

        } catch (Exception e) {
           printScr("TCP Error: " + e.toString());
        }
    } 
    private void initControls()
    {
          txtSendStatus = (TextView)findViewById(R.id.txtSendStatus);
    }

    public static void printScr(String message)
    {
           txtSendStatus.append( "n" + message );
    }
有人能告诉我答案吗? 我在等待正确的答案

致以最良好的祝愿,
gsmaker。

首先,如果您试图从设备连接到127.0.0.1,那么您就不能这样做。因为127.0.0.1是环回接口,总是指向设备本身

因此,如果您从PC连接到127.0.0.1,它将自动连接。如果你在android上调用它,它也会尝试与自身连接


第二:我认为你能做到这一点的唯一方法是当你使用WLAN时,只有这样你才能与电脑建立基于IP的连接(如果我错了,请纠正我)。您无法使用USB或蓝牙连接到电脑。

如果您使用的是wifi,则需要使用wifi网络上电脑的IP地址。您可以在ifconfig(linux)或ipconfig(windows)的命令行中找到这一点


如果您使用的是usb adb连接,您不能完全做到这一点,但您可以设置一个从PC到手机的adb转发端口(请参阅开发人员文档),并让PC连接到其环回接口和端口,该端口将转发到手机上您的应用程序应该侦听的非特权端口号。然后,您就有了一个TCP或任何连接,您可以将数据推送到任一方向。但是,PC必须是建立连接的启动器-adb不支持“反向连接”,即手机通过usb连接启动网络,以android emulator支持的方式连接到PC。

您的服务器需要在设备上,客户端需要在计算机上。 您需要让adb转发要连接到设备的端口。 建立连接后,您将能够在它们之间正常通信


我在这里写了一个完整的解释

我也有同样的问题,但是在windows mobile和电脑插座之间。我想当手机需要与远程计算机连接时,需要通过一些特殊的方式访问端口。在建立TCP连接后,我应该如何将数据从Android设备推送到PC?具体来说,该设备能够监听并接受PC侧的
套接字
,获取其
对象输出流
,并将数据写入其中。那么,PC应该如何接收数据呢?谢谢,终于搞定了。