import java.io.*;
import java.net.*;
class Client2 {
public static void main(String[] args) throws Exception {
File file = new File(args[0]);
if (!file.exists() || file.isDirectory()) {
sopln("文件不存在或不是文件");
return;
}
if (!args[0].endsWith(".jpg")) {
sopln("图片格式错误,请上传jpg格式!");
return;
}
if (file.length() >= 1024*1024*5) {
sopln("图片过大!");
return;
}
Socket s = new Socket("192.168.1.100", 10086);
FileInputStream fis = new FileInputStream(file);
OutputStream os = s.getOutputStream();
InputStream is = s.getInputStream();
byte[] buf = new byte[1024];
int len = 0;
while ((len=fis.read(buf)) != -1) {
os.write(buf, 0, len);
}
s.shutdownOutput();
int num = is.read(buf);
sopln(new String(buf, 0, num));
fis.close();
s.close();
}
public static void sopln(Object obj) {
System.out.println(obj);
}
}
class Server2 {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(10086);
while (true) {
Socket s = ss.accept();
new Thread(new PicThread(s)).start();
}
}
public static void sopln(Object obj) {
System.out.println(obj);
}
}
class PicThread implements Runnable {
private Socket s;
PicThread(Socket s) {
this.s = s;
}
public void run() {
try {
String ip = s.getInetAddress().getHostAddress();
String name = s.getInetAddress().getHostName();
InputStream is = s.getInputStream();
int count = 1;
File file = new File(name + ".jpg");
while (file.exists()) {
file = new File(name + "(" + (count++) + ")" + ".jpg");
}
FileOutputStream fos = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len = 0;
while ((len=is.read(buf)) != -1) {
fos.write(buf, 0, len);
}
OutputStream os = s.getOutputStream();
os.write("上传成功".getBytes());
fos.close();
s.close();
} catch (Exception e) {
}
}
}
Java学习之TCP上传图片
最新推荐文章于 2024-06-20 00:39:50 发布