我是Android编程中的新手,我想写一段代码,它只是在127.0.0.1上发送一个字符串,我可以在netcat上看到它,但问题是当我尝试在我的Android项目上没有任何事情发生时,所以我尝试了一个通常的Java项目,并且一切正常。 所以经过大量的调查研究我已经找到...没有Android UDP套接字无法发送数据
我的Android代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import java.net.*;
import java.io.*;
public class MainActivity extends Activity {
public static final int MON_PORT = 5001;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bouton2 = (Button)findViewById(R.id.envoi);
bouton2.setOnClickListener(new OnClickListener(){
public void onClick(View v){
try {
int port=MON_PORT;
InetAddress adresse = InetAddress.getByName("localhost");
DatagramSocket socket;
String leMessage = "test";
int longueur = leMessage.length();
byte[] message= new byte [longueur];
message = leMessage.getBytes();
socket = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(message,longueur,adresse,port);
socket.send(packet);
System.out.println("test d'execution");
socket.close();
} catch (UnknownHostException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SocketException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
而且我已经检查了我的AndroidManifest.xml和权限:
<uses-permission android:name="android.permission.INTERNET"> </uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"> </uses-permission>
不在应用程序之间标签
我使用基于Android API 7的AVD,但我尝试过使用API 16的另一个AVD,但结果相同,有人可以帮助我发现什么是错的?
感谢
netcat是否在您的PC或您的仿真器上运行? –
是的,在我的电脑上运行netcat,当我尝试我的代码就像一个经典的Java poject netcat打印出我的字符串“测试” – Josey