【问题标题】:Using sockets between android device and pc (same network)在 android 设备和 pc 之间使用套接字(同一网络)
【发布时间】:2014-03-04 21:19:12
【问题描述】:

我已经为此苦苦挣扎了一段时间。我只是想做的,是在我的 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、localhost 等等。

如果有人能帮助我,我将不胜感激!

【问题讨论】:

    标签: java android sockets networking tcp


    【解决方案1】:

    您需要计算机的公共地址(搜索什么是我的 IP)并确保没有防火墙阻止该端口。 192.168.***.* 地址不公开(它是 LAN 地址),模拟器(或实际手机)将无法看到它。

    【讨论】:

      【解决方案2】:

      我刚刚在通过 Socket Connection 连接的 Android 和桌面应用程序中创建了简单的演示,它就像一个聊天应用程序。可能对你有很大帮助。 请查看以下链接以获得更多说明。

      Android Client Connected with Socket

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-16
        • 2012-10-30
        • 1970-01-01
        • 1970-01-01
        • 2020-07-25
        • 2021-10-13
        • 1970-01-01
        相关资源
        最近更新 更多