Android 我无法通过三星S9+的DatagramSocket发送DatagramPack(我使用的线程不是UI线程)
我尝试从手机向PC发送UDP数据包–IP 192.168.1.113,在PC上我使用UDP服务器端口55777的“数据包发送器”。 但它不工作,我已经从Excel中的VBA脚本向数据包发送者发送了UDP数据包,它工作了,我还可以通过 我下载到手机上的UDP应用程序,发送到“数据包发送者” 我使用: 安卓工作室3.5 SDK平台8.1 手机:三星S9+ 我已将INTERNET权限添加到清单中: 我从一个新线程发送数据包,因为主线程不允许发送数据包,下面的代码是我继续之前的第一步,不过需要先让它工作Android 我无法通过三星S9+的DatagramSocket发送DatagramPack(我使用的线程不是UI线程),android,sockets,udp,send,Android,Sockets,Udp,Send,我尝试从手机向PC发送UDP数据包–IP 192.168.1.113,在PC上我使用UDP服务器端口55777的“数据包发送器”。 但它不工作,我已经从Excel中的VBA脚本向数据包发送者发送了UDP数据包,它工作了,我还可以通过 我下载到手机上的UDP应用程序,发送到“数据包发送者” 我使用: 安卓工作室3.5 SDK平台8.1 手机:三星S9+ 我已将INTERNET权限添加到清单中: 我从一个新线程发送数据包,因为主线程不允许发送数据包,下面的代码是我继续之前的第一步,不过需要先让它工作
public class MainActivity extends AppCompatActivity {
private Handler mainHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void startThread(View view) {
ExampleRunnable runnable = new ExampleRunnable(10);
new Thread(runnable).start();
}
class ExampleRunnable implements Runnable {
@Override
public void run() {
DatagramSocket ds = null;
String message = "Hello";
try{
ds = new DatagramSocket();
InetAddress serverAddr = InetAddress.getByName("192.168.1.113");
DatagramPacket dp;
dp = new DatagramPacket(message.getBytes(), message.length(), serverAddr, 55777);
ds.send(dp);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ds != null) {
ds.close();
}
}
}
}
}
在回答这个问题之前,有几件事需要确认。您可以提供堆栈跟踪或任何错误(如果有)。在您的情况下,如果没有编程错误,您应该检查一次防火墙。为端口55777上的传入连接请求添加新的防火墙规则 没有互联网,它是基于本地连接的。我说得对吗?如果程序有任何错误/响应,请在此处发布日志。添加堆栈跟踪以了解问题。您可以按照此代码进行操作。