“的java.net.Socket java.net.ServerSocket.accept()”上的空对象引用
问题描述:
服务器套接字引发此错误和应用程式完全崩溃。我在我的onCreate()方法中调用了这个线程。当活动第一次运行的时候,这很好,但是在完成并回到这个活动之后,出现以下错误。“的java.net.Socket java.net.ServerSocket.accept()”上的空对象引用
“的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());
}
}
}
}
答
我找出错误和编辑我的代码如下现在它的工作完美罚款& 。
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());
}
}
}
}
+0
你修好了吗?你必须解释。如果'serverSocket'为null或者关闭,你就会无休止地循环。不好的代码。 – EJP
你忘了单词NullPointerException。你为什么没有提到完整的信息? – greenapps
因为您可能正在获取NetworkOnMainThreadException。 – WalterM