Bonjour,
j'essaye de communiquer avec mon serveur mais quand je lance mon programme, celui m'affiche le message d'erreur suivant :
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at libcore.io.IoBridge.socket(IoB ridge.java:619)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at java.net.PlainDatagramSocketIm pl.create(PlainDatagramSocketI mpl.java:93)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at java.net.DatagramSocket.create Socket(DatagramSocket.java:157 )
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at java.net.DatagramSocket.<init> (DatagramSocket.java:80)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at com.example.pac.robot.MainActi vity.client(MainActivity.java: 89)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at com.example.pac.robot.MainActi vity$1.onClick(MainActivity.ja va:55)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at android.view.View.performClick (View.java:5721)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at android.widget.TextView.perfor mClick(TextView.java:10930)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at android.view.View$PerformClick .run(View.java:22620)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at android.os.Handler.handleCallb ack(Handler.java:739)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at android.os.Handler.dispatchMes sage(Handler.java:95)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at android.os.Looper.loop(Looper. java:148)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at android.app.ActivityThread.mai n(ActivityThread.java:7331)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at java.lang.reflect.Method.invok e(Native Method)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at com.android.internal.os.Zygote Init$MethodAndArgsCaller.run(Z ygoteInit.java:1230)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at com.android.internal.os.Zygote Init.main(ZygoteInit.java:1120 )
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: Caused by: android.system.ErrnoException: socket failed: EACCES (Permission denied)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at libcore.io.Posix.socket(Native Method)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at libcore.io.BlockGuardOs.socket (BlockGuardOs.java:282)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: at libcore.io.IoBridge.socket(IoB ridge.java:604)
03-05 16:34:50.523 20098-20098/com.example.pac.robot W/System.err: ... 15 more
j'ai essayé de résoudre le probleme en mettant dans AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.pac.robot ">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.a ction.MAIN" />
<category android:name="android.intent.c ategory.LAUNCHER" />
<uses-permission android:name="android.permissi on.INTERNET" />
<uses-permission android:name="android.permissi on.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permissi on.ACCESS_WIFI_STATE" />
</intent-filter>
</activity>
</application>
</manifest>
mais ca ne marche toujours pas,
je vous montre mon code :
merci d'avance pour votre aideCode:public void client(String str) throws IOException { DatagramSocket client_socket = new DatagramSocket(15000); InetAddress IPAddress = InetAddress.getByName("192.168.0.42"); DatagramPacket send_packet = new DatagramPacket(str.getBytes(),str.length(), IPAddress, 15000); client_socket.send(send_packet); } public View.OnClickListener avancerListen = new View.OnClickListener() { @Override public void onClick(View v) { Log.i("message","you clicked on avancer"); try { client(str);// str = "Hello" } catch (IOException e) { e.printStackTrace(); } } };
-----