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

Lan*_*ler 5 java sockets networking android tcp

我已经为此苦苦挣扎了一段时间。我只是想做的是在我的 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();
}
Run Code Online (Sandbox Code Playgroud)

以及来自我的 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();
}
Run Code Online (Sandbox Code Playgroud)

IP 地址:192.168.1.255 应该是某种广播 IP。但我也尝试了不同的 IP,比如我的 PC 的 IP(在 android 应用程序中硬编码)、255.255.255.0、本地主机等等。

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