在安卓设备和PC(同一网络)之间使用套接字

4

我一直在苦苦挣扎。我的目标非常简单,就是在我的Android应用程序和PC上的Java程序之间创建一个套接字连接。

我尝试了UDP和TCP套接字以及不同类型的IP和端口号。

那么,我该如何实现这一点呢?

以下是我(当前代码)尝试使用TCP连接的代码片段:

来自服务器端(PC Java程序)的代码片段:

try {

    DatagramSocket socket = new DatagramSocket(4466);
    byte[] buffer = new byte[2048];

    DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
    socket.receive(packet);

} catch (SocketException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}

以下是我 Android 应用程序(客户端)中相关的片段:

try {

    InetAddress host = InetAddress.getByName("192.168.1.255");
    DatagramSocket socket = new DatagramSocket (null);
    byte[] buffer = new byte[2048];
    buffer = "hej hej".getBytes();

    DatagramPacket packet=new DatagramPacket (buffer, buffer.length, host, 4466);
    socket.send(packet);
    socket.close();

} catch(Exception e) {
    e.printStackTrace();
}

IP地址:192.168.1.255 被认为是广播IP的一种。但我也尝试了不同的IP地址,如我的PC的IP地址(在Android应用程序中硬编码),255.255.255.0,本地主机等。

如果有人能帮助我解决问题,我将不胜感激!

2个回答

4

我刚刚创建了一个简单的 Android 和桌面应用程序,它们通过 Socket 连接相连,就像一个聊天应用程序。也许这会对您有很大帮助。

请查看以下链接以获取更多说明:Android 客户端连接 Socket


0
你需要获取计算机的公网IP地址(搜索类似“我的IP是什么”的内容),并确保没有防火墙阻止端口访问。192.168.***.*地址不是公网地址(它是局域网地址),模拟器(或实际手机)无法看到它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接