本篇是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("127.0.0.1", 10011);
// 2.创建socket输出流,目的地socket,即通过socket传往server端;
BufferedOutputStream out = new BufferedOutput

本文扩展了Java Socket+IO的实践,介绍了如何实现服务端使用多线程同时接收多个客户端通过Socket发送的非文本文件。在原有的一对一传输基础上,服务端代码被改造成启动新线程来处理每个客户端的文件传输请求,从而能够并发处理多个连接。
最低0.47元/天 解锁文章
899

被折叠的 条评论
为什么被折叠?



