java - 在android设备和pc(同一网络)之间使用套接字

标签 java android sockets networking tcp

我已经为此苦苦挣扎了一段时间。我只是想尝试在我的 Android 应用程序和 PC 上的 Java 程序之间创建一个套接字连接。

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

那么,我该如何实现呢?

这是我的(当前代码)与(尝试的)TCP 连接:

来自服务器端的代码 fragment (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();
}

以及来 self 的 Android 应用程序(客户端)的相关 fragment :

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 等等。

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

最佳答案

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

Android Client Connected with Socket

关于java - 在android设备和pc(同一网络)之间使用套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628146/

相关文章:

java - Eclipse - 构建后从触发工作区刷新中排除文件/文件夹

java - MySQL 级联删除错误方向的更改(eclipselink 作为 JPA)

android - Xamarin 部署到设备

我可以在 C 中的同一个地方发送到 Socket 并从中接收吗

c - 多次发送,多次接收

java - 如何使用在不同类中实例化的对象中的方法?

Java货币显示名称国际化

java - 将 sqLite DB 中的数据显示到不同的 TextView 中

java - 如何将文本链接设置为实际 URL 而不是 HTML 中的文本标记

node.js - Socket.io 不与 express 共享 session