首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java ServerSocket方法连续监听

Java ServerSocket方法连续监听
EN

Stack Overflow用户
提问于 2016-10-22 00:29:05
回答 1查看 69关注 0票数 0

我需要不断地监听一个客户端,并用两条消息中的任何一条进行回复。

我不确定接受方法是如何工作的。我知道它正在打开一个到客户端的连接并返回该连接。

但是在下一个循环中会发生什么呢?它是否会阻塞,直到来自客户端的下一条消息到达?另外,下面的代码是解决这个问题的好方法吗?

代码语言:javascript
代码运行次数:0
运行
复制
ServerSocket ss = new ServerSocket();
while(true) {
    Socket socket = serverSocket.accept();

    //Retreive message from client here

    if(incomingFromClient.equals(something)) {
        ReplyThread rt = new ReplyThread(socket, reply_1);
        rt.start()
    } else if(incomingFromClient.equals(somethingElse)) {
        ReplyThread rt = new ReplyThread(socket, reply_2);
        rt.start();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-10-22 02:28:50

不是的。您不应该在accept循环中对客户端执行任何I/O操作。否则,流氓客户端可能会阻止整个世界,并阻止后续客户端获得任何服务。为每个接受套接字启动的线程应该完成对该套接字的所有I/O操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40181467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档