如果将 Socket s=ss.accept();放到线程中, 那么ServerSocket ss=new ServerSocket(10007);这句也只能放到线程中,这样你的程序将变成单线程.
如果同时开启多个线程,那么ServerSocket ss=new ServerSocket(10007);将会执行多次,会报错,Address already in use: JVM_Bind 该地址已使用.
当A客户端连接上以后。被服务端获取到。服务端执行具体流程。
这时B客户端连接,只有等待。
因为服务端还没有处理完A客户端的请求,还有循环回来执行下次accept方法。所以
暂时获取不到B客户端对象。
那么为了可以让多个客户端同时并发访问服务端。
那么服务端最好就是将每个客户端封装到一个单独的线程中,这样,就可以同时处理多个客户端请求。 |