我现在做了一个服务器,当他在监听的时候可以接收到客户端的连接.问题,
如果让服务器一次只能接受一个客户端的连接,当服务器与一个客户端连接的时候,如果其他客户端请求到来,就拒绝掉.怎么实现?我现在用置位的方法可以设定服务器一次只能和一个客户端连接,但是有第2个客户端来到时,这个客户端会等待,直到第一个断掉,第2个就会连到服务器上.我怎么能直接把第2个拒绝掉呢?不知道我说明白了吗?
如果让服务器一次只能接受一个客户端的连接,当服务器与一个客户端连接的时候,如果其他客户端请求到来,就拒绝掉.怎么实现?我现在用置位的方法可以设定服务器一次只能和一个客户端连接,但是有第2个客户端来到时,这个客户端会等待,直到第一个断掉,第2个就会连到服务器上.我怎么能直接把第2个拒绝掉呢?不知道我说明白了吗?
PrintWriter out = new PrintWriter(s.getOutputStream());
out.print("Connection refused; "
+ "the server is busy; please try again later.\n");
out.flush();
s.close();
当然了,接收连接处理连接要分开
启动第一个服务线程,运行前,修改其值为false,关闭的时间修改其值为true,
后面每启动一个服务线程就检查这个变量,为false则等待,关闭的时间就修改其值为true,
大概这样,参考下
把对客户端的监听放在一个循环里就可以了,
例:
Socket you = null;
ServerSocket server = new ServerSocket(2007); while(true)
{
you = server.accept();
if(you != null) // 启动服务线程
}