gpt4 book ai didi

java - 从 ANDROID 2.2 (HTC desire) 发送 UDP 包

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:46 25 4
gpt4 key购买 nike

我有一个局域网,我想从我的 android (htc desire) 向我的 PC 发送更新消息。它们之间有一个无线路由器。问题是,UPD 消息永远不会到达 PC。

Android 上的代码:

package org.example.androidapp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPClientAnd {

public void sendUDPMessage(int port) throws java.io.IOException {
DatagramSocket socket = new DatagramSocket();
InetAddress serverIP = InetAddress.getByName("192.168.1.110");
byte[] outData = ("Ping").getBytes();
DatagramPacket out = new DatagramPacket(outData,outData.length, serverIP,50005);
socket.send(out);
socket.close();
}

}

我选择展台两侧的高端口。

Android 上的权限是:

uses-permission android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"

Server-Side 就是PC 只是一个简单的接收程序:

package org.example.androidapp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class UPDServerAnd implements Runnable{
public void run(){
byte[] inData = new byte[48];
byte[] outData = new byte[48];
String message;
DatagramSocket socket;
try {
socket = new DatagramSocket(50005);
while (true) {
DatagramPacket in = new DatagramPacket(inData,inData.length);
socket.receive(in);
InetAddress senderIP = in.getAddress();
int senderPort = in.getPort();
message=new String(in.getData(),0,in.getLength());
System.out.println("Got "+message+" from "+senderIP+","+senderPort);
outData = "Pong".getBytes();
DatagramPacket out = new DatagramPacket(outData,outData.length, senderIP,senderPort);
socket.send(out);
}
} catch (SocketException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}

}

}

那么为什么没有来自 android 的可见 UDP 包?即使 Wireshark 也只显示一些 ARP 包。请帮助:)

最佳答案

我遇到了一个非常相似的问题。我的解决方案是添加:

uses-permission android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"

Manifest.xml 文件。然后我禁用了所有 Windows 防火墙 并且它起作用了。我能够从我的 Droid 向 PC 发送一个 String

关于java - 从 ANDROID 2.2 (HTC desire) 发送 UDP 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5042548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com