Sending UDP packages from ANDROID 2.2 (HTC desire)(从 ANDROID 2.2 发送 UDP 包(HTC 的愿望))
问题描述
我有一个局域网,我想从我的 android(htc 愿望)向我的 PC 发送一条更新消息.它们之间有一个 Wlan 路由器.问题是,UPD 消息永远不会到达 PC.
i have a lan and i want to send a upd message from my android (htc desire) to my PC. Theres a Wlan Router between them. The Problem is, that the UPD message never gets to the PC.
Android 上的代码.:
Code on the 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();
}
}
我选择展位两侧的高端口.
I choose a high port on booth sides.
Android 上的权限是:
The Permissions on the Android are:
uses-permission android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"
Server-Side 是 PC,只是一个简单的接收程序:
The Server-Side is the PC just a simple programm for receiving:
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 包.请帮助:)
So why is there no UDP Package visible coming from android? Even Wireshark only shows some ARP packages. Plz help :)
推荐答案
我遇到了一个非常相似的问题.我的解决方案是添加:
I was having a very similar problem. My solution was to add:
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 防火墙
并且它起作用了.我能够将 String
从我的 Droid
发送到 PC.
to the Manifest.xml
file. Then I disabled all Windows firewall
and it worked. I was able to send a String
from my Droid
to a PC.
这篇关于从 ANDROID 2.2 发送 UDP 包(HTC 的愿望)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:从 ANDROID 2.2 发送 UDP 包(HTC 的愿望)
基础教程推荐
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01