Android 具有 Java 的应用程序 - udp 字符串未发送
Android application with Java - udp string doesn't send
我已经开始在 android studio 上使用 JAVA,我正在尝试创建一个简单的应用程序,它将向我的服务器发送一个 udp 字符串。
应用程序中的一切似乎都在工作(当我按下按钮时,我可以看到它被按下,当我使用 android studio 和调试时 - 该功能正在工作,我没有得到任何例外)。
我已经检查过,我的服务器正在侦听该端口(其他应用程序正在向该端口发送数据 - 它正在运行)。
但我认为应用程序没有发送给它。
这就是我的:
btnAction.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {
try {
String messageStr = "test!";
int server_port = 1111;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("My.Public.Server.IP");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length, local,server_port);
s.send(p);
} catch (Exception e) {
}
}
}
知道哪里出了问题吗?
提前致谢。
- 您必须在清单中拥有互联网许可
<uses-permission android:name="android.permission.INTERNET"/>
- 您必须 运行 在不同的线程(而不是在主线程)中执行与网络相关的任务
您的代码将如下所示:
btnAction.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {
new Thread("thread_udp"){
public void run(){
try {
String messageStr = "test!";
int server_port = 1111;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("My.Public.Server.IP");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length, local,server_port);
s.send(p);
} catch (Exception e) {
e.printStackTrace()
}
}
}.start()
}
}
我已经开始在 android studio 上使用 JAVA,我正在尝试创建一个简单的应用程序,它将向我的服务器发送一个 udp 字符串。
应用程序中的一切似乎都在工作(当我按下按钮时,我可以看到它被按下,当我使用 android studio 和调试时 - 该功能正在工作,我没有得到任何例外)。
我已经检查过,我的服务器正在侦听该端口(其他应用程序正在向该端口发送数据 - 它正在运行)。
但我认为应用程序没有发送给它。
这就是我的:
btnAction.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {
try {
String messageStr = "test!";
int server_port = 1111;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("My.Public.Server.IP");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length, local,server_port);
s.send(p);
} catch (Exception e) {
}
}
}
知道哪里出了问题吗?
提前致谢。
- 您必须在清单中拥有互联网许可
<uses-permission android:name="android.permission.INTERNET"/>
- 您必须 运行 在不同的线程(而不是在主线程)中执行与网络相关的任务
您的代码将如下所示:
btnAction.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {
new Thread("thread_udp"){
public void run(){
try {
String messageStr = "test!";
int server_port = 1111;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("My.Public.Server.IP");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length, local,server_port);
s.send(p);
} catch (Exception e) {
e.printStackTrace()
}
}
}.start()
}
}