serverSocket.accept()方法大概原理
2019-04-28 本文已影响0人
屎倒淋头还嚼便
该方法的注释:
Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made.
侦听对此套接字的连接并接受它。 该方法将阻塞,直到建立连接。
(大概是方法所在线程被阻塞)
一、ServerSocket ss = new ServerSocket(8888);
serverSocket.accept()方法大概是这样的:(不一定正确)
监听某个端口有无连接进来了,套接字服务端已经做了哪些工作?
1、(调用os的接口)告诉操作系统,当前程序的socket指定了8888端口,当端口收到连接信息之后,会把消息通过DMA的方式放到一个缓存区中,并唤醒注册在os中的阻塞线程,让这个线程到缓存区处理连接消息。(或者缓存区由socket程序指定)
2、端口有连接进来时,给cpu发中断,然后由该方法所在线程处理连接