关于socket java线程有关问题
关于socket java线程问题
Socket socket = serverSocket.accept();
这一句老是报空指针
------解决方案--------------------
this.serverSocket = new ServerSocket(8877); 把这个this去掉看看
package com.vo;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* socket 线程类
* @author zhangzhongwen
*
*/
public class SocketThread extends Thread{
private ServerSocket serverSocket = null;
public SocketThread(ServerSocket serverScoket){
try {
if(null == serverSocket){
this.serverSocket = new ServerSocket(8877);
System.out.println("socket start");
System.out.println(serverSocket);
}
} catch (Exception e) {
System.out.println("SocketThread创建socket服务出错");
e.printStackTrace();
}
}
public void run(){
System.out.println("进入服务端1");
while(!this.isInterrupted()){
System.out.println("进入服务端2");
try {
System.out.println("进入服务端3");
Socket socket = serverSocket.accept();
System.out.println(socket.toString());
if(null != socket && !socket.isClosed()){
//处理接受的数据
new SocketOperate(socket).start();
}
socket.setSoTimeout(30000);
}catch (Exception e) {
e.printStackTrace();
}
}
}
public void closeSocketServer(){
try {
if(null!=serverSocket && !serverSocket.isClosed())
{
serverSocket.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Socket socket = serverSocket.accept();
这一句老是报空指针
------解决方案--------------------
this.serverSocket = new ServerSocket(8877); 把这个this去掉看看