java 线程的代码为什么get方法得不到socket呢
publicclassLoginThreadextendsThread{publicSocketsocket=null;publicinti;publicStringip...
public class LoginThread extends Thread {
public Socket socket = null;
public int i;
public String ip;
public LoginThread(String ip, int i) {
this.ip = ip;
this.i = i;
}
@Override
public void run() {
try {
socket = new Socket(ip, i);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Socket getSocket() {
return socket;
}
} 展开
public Socket socket = null;
public int i;
public String ip;
public LoginThread(String ip, int i) {
this.ip = ip;
this.i = i;
}
@Override
public void run() {
try {
socket = new Socket(ip, i);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Socket getSocket() {
return socket;
}
} 展开
1个回答
展开全部
LoginThread lt = new LoginThread(ip,port);
lt.start();//直接运行下一行代码了。没来得及创建socket
it.getSocket();
这样的代码往往是那不到socket的,因为是多线程,
try catch创建时需要时间的。要想拿到,还是单线程吧。
如果一定要多线程估计有多个线程,那前提还是事先初始化几个线程。
lt.start();//直接运行下一行代码了。没来得及创建socket
it.getSocket();
这样的代码往往是那不到socket的,因为是多线程,
try catch创建时需要时间的。要想拿到,还是单线程吧。
如果一定要多线程估计有多个线程,那前提还是事先初始化几个线程。
追问
我想在客户端同时连接几个端口到服务器端呢?请问应该怎么实现比较好
追答
想创建后直接拿socket对象,那么就一个一个的创建然后拿。
try {
socket = serverSocket.accept();
//监听 下面是处理
Thread thread = new Thread(new Handler(socket));
thread.start();
} catch (IOException e) {
log.error("Socket监视に失败", e);
}
public class Handler implements Runnable {
public void run() {
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询