TCP数据传输(六):上传图片并给出反馈
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public classUploadServer {
public static void main(String[] args) throws IOException {
// 创建服务器Socket对象
ServerSocketss = newServerSocket(19191);
// 监听客户端连接
Sockets = ss.accept();
// 封装通道内流
BufferedInputStreambis = newBufferedInputStream(s.getInputStream());
// 封装图片文件
BufferedOutputStreambos = newBufferedOutputStream(
new FileOutputStream("mn.jpg"));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys))!= -1) {
bos.write(bys,0, len);
bos.flush();
}
// 给一个反馈
OutputStreamos = s.getOutputStream();
os.write("图片上传成功".getBytes());
bos.close();
s.close();
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
public classUploadClient {
public static void main(String[] args) throws IOException {
// 创建客户端Socket对象
Sockets = newSocket("192.168.12.92", 19191);
// 封装图片文件
BufferedInputStreambis = newBufferedInputStream(new FileInputStream(
"林青霞.jpg"));
// 封装通道内的流
BufferedOutputStreambos = newBufferedOutputStream(s.getOutputStream());
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys))!= -1) {
bos.write(bys,0, len);
bos.flush();
}
s.shutdownOutput();
// 读取反馈
InputStreamis = s.getInputStream();
byte[] bys2 = new byte[1024];
int len2 = is.read(bys2);
Stringclient = newString(bys2, 0, len2);
System.out.println(client);
// 释放资源
bis.close();
s.close();
}
}

本文介绍了一个基于TCP协议实现的简单图片上传系统。该系统包括客户端和服务端两部分:客户端负责选择并发送图片到指定服务器地址;服务端接收图片并保存,之后返回确认消息给客户端。通过此例,读者可以了解如何使用Java进行基本的网络编程。
1107

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



