我的客户端/服务器程序出现问题,在客户端连接后会被阻止。我的一个客户端可以与我的服务器通信,但是当我尝试连接另一个时,第二个客户端无法连接。我从来没有看到我的“OK”我的控制台上:Java套接字仅适用于一个客户端,在服务器接受后被阻止
public class Server{
private Map<Integer,ThreadClient > mapThreads;
private ServerSocket serveur ;
public static void main(String args[])
{
try{
Serveur serv = new Server();
serv.setServer(new ServerSocket(4786,2));
while (true)
{
serv.getMapThreads().put(new ThreadClient(serv.getServer().accept(),serv);
System.out.println("ok");
}
}
catch (Exception e) { }
}
class ThreadClient implements Runnable
{
private Thread t;
private Socket socket;
private ObjectOutputStream oos ;
private ObjectInputStream ois;
private Serveur server;
public ThreadClient(Socket s, Server serv) throws ClassNotFoundException
{
server = serv;
socket=s;
try{
oos = new ObjectOutputStream(socket.getOutputStream());
ois = new ObjectInputStream(socket.getInputStream());
}
catch (IOException e){ }
t = new Thread(this);
t.start();
}
public void run()
{
try
{
while(true){
// send and recev message
}
}
}
catch (Exception e){ }
}
有一个缺失的大括号。我猜测它应该在ThreadClient类的开始之前,除非ThreadClient类被包含在Server类中,在这种情况下,从最后结束的大括号是不存在的。 – 2015-04-01 23:33:26