'java.net.Socket java.net.ServerSocket.accept()' для пустой ссылки на объект
Server Socket выдает эту ошибку и приложение полностью вылетает. Я вызвал этот поток в моем методе onCreate(). Когда действие выполняется в первый раз, это хорошо, но после завершения и возврата к этому заданию выдается ошибка ниже.
'java.net.Socket java.net.ServerSocket.accept ()' для пустой ссылки на объект
private class ClientConnectionThread implements Runnable {
ServerSocket serversocket;
public ClientConnectionThread(){
try{
serversocket = new ServerSocket(5005);
serversocket.setReceiveBufferSize(1024*1024);
Log.v("BoardCastRunning","BoardCast Server Waiting");
}catch (IOException ex){
Log.v("BoardCastError",ex.toString());
}
}
@Override
public void run() {
while(true){
try{
streamClientSocket = serversocket.accept();
Log.v("BoardCast","New Connection");
videoBroadcastSockets.add(streamClientSocket);
runOnUiThread(new Runnable() {
@Override
public void run() {
Utils.shortToast(context,
"Client connected from: "
+ streamClientSocket.getInetAddress().getHostAddress()
+ " " + streamClientSocket.getPort());
}
});
}
catch(IOException ex){
Log.v("BoardCastError",ex.toString());
}
}
}
}
1 ответ
Решение
Я нахожу ошибку и редактирую свой код, как показано ниже, теперь он работает отлично и отлично.
private class ClientConnectionThread implements Runnable {
ServerSocket serversocket;
public ClientConnectionThread(){
try{
serversocket = new ServerSocket(5005);
serversocket.setReceiveBufferSize(1024*1024);
Log.v("BoardCastRunning","BoardCast Server Waiting");
}catch (IOException ex){
Log.v("BoardCastError",ex.toString());
}
}
@Override
public void run() {
while(true){
try{
if(serversocket!=null){
if(!serversocket.isClosed()){
streamClientSocket = serversocket.accept();
Log.v("BoardCast","New Connection");
if(streamClientSocket!=null){
videoBroadcastSockets.add(streamClientSocket);
runOnUiThread(new Runnable() {
@Override
public void run() {
Utils.shortToast(context,
"Client connected from: "
+ streamClientSocket.getInetAddress().getHostAddress()
+ " " + streamClientSocket.getPort());
}
});
}
}
}
}
catch(IOException ex){
Log.v("BoardCastError",ex.toString());
}
}
}
}