如何让socket服务器只允许一个客户端连接

我利用socket建立连接,但是因为是服务器,所以它能连接多个客户端,但是我只想让服务器连接一个客户端,使得其他的客户端连接失败,请问有什么处理方式,或者在建立套接字的过... 我利用socket建立连接,但是因为是服务器,所以它能连接多个客户端,但是我只想让服务器连接一个客户端,使得其他的客户端连接失败,请问有什么处理方式,或者在建立套接字的过程需要添加或修改什么参数?请高手指点
我用的是VC开发工具,设标志位的形式我们也考虑过,不过我们是面向连接的,也就是说服务器listen,等待客户端connect,当有connect的时候就accept,不过listen后面有个参数,表示可以接受多少个客户端连接,默认是1,表示除了第一个已经连接成功之外,还可以再连接一个,所以至少会有两个客户端是连接成功的,只是只有一个能和服务器通信,那么如何实现让服务器只让一个客户端连接成功呢?希望高手们指点
展开
 我来答
百度网友3c24f79
2010-07-08 · TA获得超过138个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:141万
展开全部
在服务器端设置一个标志变量,如int flag = 0,当有客户端连接上了,就检查那个标志变量是否为0,如果是的话就连接,然后将这个标志设为1。如果为1的话就拒绝连接。我不知道你是用什么语言编写的,所以具体怎么去拒绝连接就自己多想想吧···
在java里面很容易实现,下面是我在java中实现的服务器端代码,希望对你有帮助。。。
package ob;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
Socket socket;
boolean flag = true;

public void createServer() {

try {
ServerSocket serverSocket = new ServerSocket(9090);
while (true) {
socket = serverSocket.accept();
if (flag) {
System.out.println("有用户连上···");
System.out.println("ip:"+socket.getRemoteSocketAddress().toString()+" port:"+socket.getPort());
flag = false;
}else{
System.out.println("有用户连上···");
socket.close();
System.out.println("关闭用户连接···");
}
}

} catch (IOException e) {
e.printStackTrace();
}

}
public static void main(String[] args) {
new Server().createServer();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-06-05 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式