永发信息网

java accept阻塞

答案:3  悬赏:50  手机版
解决时间 2021-11-24 02:01
  • 提问者网友:山高云阔
  • 2021-11-23 03:25
java accept阻塞
最佳答案
  • 五星知识达人网友:慢性怪人
  • 2021-11-23 04:48
您好,提问者:
这个accept是一种阻塞形式的IO和监听端口方法。
如果有数据过来会唤醒此方法,内部用的wait()、notity()追问我看那个 马士兵的教程,弄了一客户端连接上去,可是到了 accept 就停止了,明明看教程上运行的好好的...追答accept 接收到数据一条数据就都断开了。
可以while(true)包裹起来。
全部回答
  • 1楼网友:像个废品
  • 2021-11-23 06:11
accept 本来就是阻塞线程直到有客户端连接好后才继续的。。追问我弄了一个客户端,连接上还是没继续追答除非你是要学习练习底层协议。大部分应用,比如聊天,用高级http都可以做。
写用socket这是在重新发明轮子,而且缺乏各种保障的轮子....
  • 2楼网友:傲气稳了全场
  • 2021-11-23 05:25

这里的API在设计时就是阻塞的,一般这样用:

server = new ServerSocket(8888);// 新建服务端监听
..........................................
while (waitForNewConnet) {// 判断是否继续等待新连接
    Socket temp = server.accept();
    new MyConnect(this, temp).start();// 在新线程中完成连接的处理,以免阻塞服务器
    writeProxyServerLog("已建立的连接。" + ++i);
}
.................
public MyConnect extends Thread{// 处理各种连接
    .............................
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯