本程序为通过TCP从客户端上传一个文件到服务端。
分析:如果让服务端一直处于监听状态,可以把代码用while(true)括起来。但是这个服务端有个局限性,当A客户端连接上以后,被服务端获取到,服务端执行具体流程。这时B客户端连接,只能等待。因为服务端还没有处理完A客户端的请求,只有循环结束回来才能执行下次accept方法,所以暂时获取不到B客户端对象。
那么为了可以让多个客户端同时并发访问服务端,服务端最好就是将每个客户端封装到一个单独的线程中,这样,就可以同时处理多个客户端请求。
如何定义线程呢?只要明确了每一个客户端要在服务端执行的代码即可,将改代码存入run方法中。程序代码如下:
客户端:
服务端:
把每个线程执行的共同代码封装成一个对象,即把每个连接到服务端的客户端封装成对象。