今天学习的客户端和服务端上传图片,
客户端开发,代码如下:
package fileupload;
import java.io.*;
import java.net.Socket;
public class Client01 {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 6666);
OutputStream os = socket.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\HeiMa\\IO\\地球.jpg"));
byte[] bytes =new byte[1024];
int len;
while ((len=bis.read(bytes))!=-1){
os.write(bytes);
}
System.out.println("--------------------");
socket.shutdownOutput();
InputStream is = socket.getInputStream();
byte[] bytes1 = new byte[1024];
int count;
while ((count=is.read(bytes1))!=-1){
System.out.println(new String(bytes1,0,count));
}
is.close();
os.close();
bis.close();
socket.close();
}
}
服务端,代码如下:
package fileupload;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Server01 {
public static void main(String[] args) throws IOException {
//创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(6666);
ExecutorService executorService = Executors.newFixedThreadPool(10);
//读取客户端发送的请求
while (true){
executorService.submit(new Runnable() {
Socket socket = serverSocket.accept();
@Override
public void run() {
try {
InputStream is = socket.getInputStream();
String name =System.currentTimeMillis()+".jpg";
BufferedOutputStream bis = new BufferedOutputStream(new FileOutputStream("D:\\HeiMa\\IO\\java\\"+name));
byte[] bytes =new byte[1024];
int len;
while ((len=is.read(bytes))!=-1){
bis.write(bytes);
}
//响应客户端上传成功
OutputStream os = socket.getOutputStream();
os.write("上传成功".getBytes());
socket.shutdownOutput();
os.close();
is.close();
bis.close();
socket.close();
serverSocket.close();
}catch (Exception e){
e.printStackTrace();
}
}
});
}
}
}
小白初学,欢迎多多批评指正!