问题背景
单线程上传图片服务端有个局限性:
当A客服端连接上以后,被服务端获取到,执行上传图片操作流程。
这时B客服连接,只能等待。
因为服务端还没有处理完A客户端的请求,还要循环回来执行下次accept()方法,所以暂时获取不到B客户端对象。
思考
为了可以让多个客户端同时并发访问服务端,那么服务端最好就是将每个客户端需要的操作封到一个单独的线程中,这样就可以同时处理多个客户端请求。
如何定义线程:
明确每一个客户端要在服务端执行的代码,将该代码存入run()方法中即可。
编码
import java.net.*;
import java.io.*;
class PicThread implements Runnable{ // 服务端处理上传图片操作线程
private Socket s;
PicThread(Socket s){
this.s=s;
}
public void run(){
int count=