gpt4 book ai didi

安卓 : Listener for incoming UDP messages?

转载 作者:太空狗 更新时间:2023-10-29 14:14:31 25 4
gpt4 key购买 nike

我有一个应用程序 android,它向服务器 (PC) 发送数据,但我没有收到从 PC 到应用程序的任何数据。而且,我怎样才能为传入的 UDP 消息做一个监听器?

因为我需要一个应用程序即使关闭也能一直运行。我如何确保我的“监听器”服务始终在运行?我希望在消息从服务器到达智能手机时收到通知。

这是我的代码:

public class MainActivity extends Activity implements TextWatcher, OnClickListener  {

Client client;
EnvoyerMess envoyermessage;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

client = new Client();
client.execute();
lancer.setOnClickListener( new OnClickListener() {

@Override
public void onClick(View v) {

envoyermessage=new EnvoyerMess();
envoyermessage.execute();

}

});

}

class Client extends AsyncTask<Void,Void,String>{

DatagramSocket client;
String test ;


public String doInBackground(Void...params){
String result=null;
int port=4000;

DatagramSocket clientSocket = null;
byte[] receiveData = new byte[256];
DatagramPacket packet = new DatagramPacket(receiveData, receiveData.length);
try{
InetAddress adresse = InetAddress.getByName("10.0.2.2");
clientSocket = new DatagramSocket(port);
clientSocket.receive(packet);
result = new String(packet.getData());
Log.d("","Received :) ");
}catch (Exception e) {
e.printStackTrace();

} finally {
if (clientSocket != null) {
clientSocket.close();
}
}
return result;
}


public void onPostExecute(String result){
if (result != null) {
//createNotify();
TextView tv = (TextView) MainActivity.this.findViewById(R.id.textView1);
tv.setText(result);

}
}

提前致谢..

最佳答案

我首先要确保 PC 实际上正在将数据包发送到正确的 IP 地址。使用 wireshark 执行此操作,http://www.wireshark.org/ ,或类似的工具。

为确保即使应用程序已关闭您的任务仍在运行,您需要一项服务,http://developer.android.com/guide/components/services.html .

编辑:

如果您使用的是模拟器,则必须首先在 avd 路由器中启用重定向。此链接提供了有关如何完成此 developer.android.com/tools/devices/emulator.html#redirection 的说明(我无法发布链接,因此您必须复制粘贴)。

如果您在 Windows 中进行开发,您还需要启用 telnet。此链接描述了完成该操作的步骤 social.technet.microsoft.com/wiki/contents/articles/910.windows-7-enabling-telnet-client.aspx(同样,复制粘贴)

关于安卓 : Listener for incoming UDP messages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23768473/

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