//客户端
package 并行上传;
import java.io.*;import java.net.*;
class ClientUp
{
public static void main(String[] args)throws IOException
{
System.out.println("客户端端启动....");
//实现图片上传的客户端
Socket socket = new Socket(InetAddress.getByName("10.0.185.126"),21110);
//读取本地图片的字节读取流 //C:\\Users\\龙骨\\Desktop\\day21\\多线程上传\\1.jpg 注意路径问题
FileInputStream fis = new FileInputStream("C:\\Users\\龙骨\\1.jpg");
//给服务器端发送数据的字节输出流
OutputStream out = socket.getOutputStream();
//读取"上传成功"的字节读取流
InputStream in = socket.getInputStream();
//循环读取本地图片,发送给服务器端
byte[] arr = new byte[1024];
int len = 0;
while((len = fis.read(arr))!=-1)
{
out.write(arr,0,len);
}
//向服务器写入结束标记
socket.shutdownOutput();
//读取"上传成功"
int num = in.read(arr);
System.out.println(new String(arr,0,num));
fis.close();
socket.close();
}
}
//服务器端
package 并行上传;
import java.net.*;
import java.io.*;
class ServerUp implements Runnable
{
private Socket socket;
public ServerUp(Socket socket)
{
this.socket = socket;
}
public void run()
{
try{
//把上传的图片放到统一的目录下
File dir = new File("pictures");
if(!dir.exists())
dir.mkdir();
String ip = socket.getInetAddress().getHostAddress();
System.out.println(ip+"连接到客户端");
int num = 0;
File file = new File(dir,ip+(++num)+".jpg");
while(file.exists())
{
file = new File(dir,ip+(++num)+".jpg");
}
FileOutputStream fos = new FileOutputStream(file);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
byte[] arr = new byte[1024];
int len = 0;
while((len = in.read(arr))!=-1)
{
fos.write(arr,0,len);
}
fos.close();
out.write("上传成功".getBytes());
socket.close();
System.out.println(num);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
//主函数
import java.net.*;
import java.io.*;
class TestUp
{
public static void main(String[] args)throws IOException
{
ServerSocket server = new ServerSocket(21110);
while(true)
{
Socket socket = server.accept();
new Thread(new ServerUp(socket)).start();
}
}
}
注:
注意端口 、IP地址、图片的路径