KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to write a simple android chat app. I have created a service class which handles all the networking communication. The DatagramSocket binding is in a separate thread. Once in while I am getting this error and the app crashes: java.net.BindException: bind failed: EADDRINUSE (Address already in use) at libcore.io.IoBridge.bind(IoBridge.java:89) at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:68) at java.net.DatagramSocket.createSocket(DatagramSocket.java:133) at java.net.DatagramSocket.<init>(DatagramSocket.java:78) and this is the code which prodruces it. The error occur on the line with new DatagramSocket How can I avoid this error? Thank you. private class ComThread extends Thread { private static final int BCAST_PORT = 8779; DatagramSocket mSocket; InetAddress myBcastIP, myLocalIP; public ComThread() { try { myBcastIP = getBroadcastAddress(); if (D) Log.d(TAG, "my bcast ip : " + myBcastIP); myLocalIP = getLocalAddress(); if (D) Log.d(TAG, "my local ip : " + myLocalIP); if (mSocket == null) { mSocket = new DatagramSocket(BCAST_PORT); mSocket.setReuseAddress(true); mSocket.setBroadcast(true); } } catch (IOException e) { Log.e(TAG, "Could not make socket", e); } }
Tags (comma-separated)
Save Edits
Cancel