Repository navigation
Expand file tree
/
Copy pathUploadPic.java
More file actions
73 lines (65 loc) · 1.6 KB
/
Copy pathUploadPic.java
File metadata and controls
73 lines (65 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*基于tcp协议模拟多客户端并发的图片上传*/
import java.io.*;
import java.net.*;
//客户端
class Client{
public static void main(String args[])throws Exception{
Socket s = new Socket("127.0.0.1",10000);
//客户端的数据目标
OutputStream os = s.getOutputStream();
//建立客户端的数据来源
FileInputStream fis = new FileInputStream("1.bmp");
byte[] b = new byte[1024];
int length = 0;
while((length=fis.read(b))!=-1){
os.write(b,0,length);
}
//提示服务端数据已经写完,如果不提示,客户端的while循环无法正常结束,一直等待
s.shutdownOutput();
//另一个数据来源
InputStream is = s.getInputStream();
length = is.read(b);
System.out.println(new String(b,0,length));
fis.close();
s.close();
}
}
class UploadThread implements Runnable{
private Socket s;
UploadThread(Socket s){
this.s = s;
}
public void run(){
String ip = s.getInetAddress().getHostAddress();
try{
//服务端的数据来源
InputStream is = s.getInputStream();
//服务端的数据目标
FileOutputStream fos = new FileOutputStream(ip+"server.bmp");
byte[] b = new byte[1024];
int length = 0;
while((length = is.read(b))!=-1){
fos.write(b,0,length);
}
OutputStream os = s.getOutputStream();
os.write("上传成功!".getBytes());
System.out.println(ip+"上传成功!");
fos.close();
s.close();
}
catch(Exception e){
System.out.println(ip+"上传失败!");
}
}
}
//服务端
class Server{
public static void main(String args[])throws Exception{
ServerSocket ss = new ServerSocket(10000);
while(true){
Socket s = ss.accept();
new Thread(new UploadThread(s)).start();
}
//ss.close();
}
}