大佬教程收集整理的这篇文章主要介绍了Android java.net.SocketException:socket failed:EACCES(Permission denied),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这里@L_306_5@mainActivity:
public class MainActivity extends Activity { private UdpClientServer cu; private Edit@R_488_3801@Ipscheda; private Edit@R_488_3801@UdpPort; @Override protected void onCreate(Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); setContentView(R.layout.activity_main); textIpscheda = (EditText) findViewById(R.id.textIpscheda); textUdpPort = (EditText) findViewById(R.id.textUdpPort); try { cu = new UdpClientServer(this); } catch (IOException E) { e.printStackTrace(); } } public EditText getTextIpscheda(){ return textIpscheda; } public void setTextIpscheda(Edit@R_488_3801@Ipscheda){ this.textIpscheda = textIpscheda; } public EditText getTextUdpPort() { return textUdpPort; } public void setTextUdpPort(Edit@R_488_3801@UdpPort) { this.textUdpPort = textUdpPort; }
这里代码UdpClientServer:
public class UdpClientServer { public static String sReceive; private static DatagramSocket dSocket; int receiveBufferSize = 1024; int portUdp = 0; final String PINGACMD = "AT*PINGA001"; InetAddress ipscheda; byte[] receiveData = new byte[receiveBufferSize]; private MainActivity gui = null; public UdpClientServer(MainActivity gui) throws SocketException,IOException { this.gui = gui; portUdp = Integer.parseInt(String.valueOf(gui.getTextUdpPort().getText())); dSocket = new DatagramSocket(portUdp); } public void run(){ while (true) { // svuotamento buffer Arrays.fill(receiveData,(bytE) 0); DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length); try { dSocket.receive(receivePacket); } catch (IOException E) { e.printStackTrace(); } ipscheda = receivePacket.getAddress(); int port = receivePacket.getPort(); gui.getTextUdpPort().setText("" + port); gui.getTextIpscheda().setText(ipscheda.getHostAddress()); sReceive = new String(receivePacket.getData()); this.sendCommand(PINGACMD); } } public void sendCommand(String outSentencE){ byte[] sendData = outSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,ipscheda,portUdp); try { dSocket.send(sendPacket); Thread.sleep(100); } catch (IOException E) { e.printStackTrace(); } catch (InterruptedException E) { e.printStackTrace(); } finally { } }
}
这里的logcat:
12-29 11:43:22.291 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ java.net.socketException: socket Failed: EACCES (Permission denied) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at libcore.io.IoBridge.socket(IoBridge.java:623) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at java.net.PlainDatagramSocketImpl.create(PlainDatagramSocketImpl.java:93) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at java.net.DatagramSocket.createSocket(DatagramSocket.java:157) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at java.net.DatagramSocket.<init>(DatagramSocket.java:80) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at com.example.matteo.myfirstapp.UdpClientServer.<init>(UdpClientServer.java:32) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at com.example.matteo.myfirstapp.MainActivity.onCreate(MainActivity.java:24) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.app.Activity.performCreate(Activity.java:5933) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.app.instrumentation.callActivityOnCreate(instrumentation.java:1105) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.app.ActivityThread.access$800(ActivityThread.java:144) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.app.ActivityThread$H.handlemessage(ActivityThread.java:1278) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.os.Handler.dispatchmessage(Handler.java:102) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.os.Looper.loop(Looper.java:135) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5221) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at java.lang.reflect.Method.invoke(Native Method) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at java.lang.reflect.Method.invoke(Method.java:372) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ Caused by: android.sy@R_502_2407@.ErrnoException: socket Failed: EACCES (Permission denied) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at libcore.io.Posix.socket(Native Method) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at libcore.io.blockGuardOs.socket(BlockGuardOs.java:282) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ at libcore.io.IoBridge.socket(IoBridge.java:608) 12-29 11:43:22.294 28914-28914/com.example.matteo.myfirstapp W/Sy@R_502_2407@.err﹕ ... 18 more
在我的AndroidManifest.xml中刚刚添加了字符串
<uses-permission android:name="android.permission.INTERNET"/>
但它不行
你可以帮我吗?
谢谢
以上是大佬教程为你收集整理的Android java.net.SocketException:socket failed:EACCES(Permission denied)全部内容,希望文章能够帮你解决Android java.net.SocketException:socket failed:EACCES(Permission denied)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。