gpt4 book ai didi

java - 如何在android中使用UDP套接字?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:32 25 4
gpt4 key购买 nike

我正在尝试在 android 中使用 UDP 套接字,在这里我从 android 模拟器发送我的字符串并通过我在 PC 上的 Java 程序接收它,但是我的 Java 程序没有收到任何东西,尽管当我使用 Java 程序作为两个客户端时和服务器(我制作了两个不同的 Java 程序)它工作正常。

这是我的安卓主要 Activity :

public class First extends Activity {
Button b;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
// TODO Auto-generated method stub
Thread t = new Thread(new Second());
t.start();
}
});

这是我在 android 中的第二堂课:

    public class Second implements Runnable {
Second()
{
run();
}
public void run() {
// TODO Auto-generated method stub
try {

String messageStr = "Hello Android!";
int server_port = 9876;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("127.0.0.1");
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) {

}
}
}

这是我在 PC 上的 Java 代码:

    public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData(),0,receivePacket.getLength());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
System.out.println("MESSAGE RECEIVED "+sentence+" "+IPAddress+" "+port);
}
}

最佳答案

在您的 Android 模拟器(和 Android 设备)上,127.0.0.1 表示 Android 模拟器,而不是主机 PC。您可以通过 10.0.2.2 访问您的主机

关于java - 如何在android中使用UDP套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652261/

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