本篇是socket+IO的扩展,是下面这篇的扩展,具体参考:
Java Socket+IO练习2:使用socket传输文件和图片
上文中是一对一传输,客户端文件传输完毕后,服务端也自动关闭。这样,服务端只能接收一个客户端发来的数据,如果想要服务端同时接收多个客户端发送的数据,服务端就要支持多线程。
需要把服务端的文件接收代码 放到线程里,具体代码如下。
客户端代码,与上文中一致:
package socket;
import java.io.*;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
public class test3Client {
public static void main(String[] args) throws IOException {
File file = new File("C:\\screenshot.jpg");
uploadFile(file);
}
private static void uploadFile(File file) throws IOException {
if (!file.exists())
throw new IOException("文件不存在!");
// 1.创socket作为client;
Socket s = new Socket(