本文实例讲述了java基于socket传输zip文件的方法。分享给大家供大家参考,具体如下:
服务器端程序:
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
|
import java.io.*;
import java.net.*;
import java.io.BufferedInputStream;
public class SocketServer {
ServerSocket ss= null ;
Socket s= null ;
DataInputStream inStream= null ;
DataOutputStream outStream= null ;
FileInputStream fin = null ;
public SocketServer() {
try {
ss= new ServerSocket( 765 );
s.setSoTimeout( 3000 );
} catch (Exception e){
System.out.println(e.toString());
}
}
void waitForClient(){
try {
while ( true ){
s=ss.accept();
ThreadServer thread = new ThreadServer(s);
thread.start();
}
} catch (Exception e){
System.out.println(e.toString());
}
}
public static void main(String[] args) {
SocketServer socketServer1 = new SocketServer();
socketServer1.waitForClient();
}
}
|
线程类:
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
|
import java.io.*;
import java.net.*;
class ThreadServer extends Thread{
private Socket socket;
private DataInputStream inStream= null ;
private DataOutputStream outStream= null ;
private FileInputStream fin = null ;
public ThreadServer(Socket sock){
this .socket = sock;
}
public void run(){
boolean bool = false ;
//while(!bool){
try {
inStream= new DataInputStream(socket.getInputStream());
outStream= new DataOutputStream(socket.getOutputStream());
fin = new FileInputStream( "C:/temp/socket/200212060001_ds.zip" );
//socket.setSoTimeout(3000);
byte [] b = new byte [ 200 ];
int i;
while ((i=fin.read(b))!=- 1 ){
outStream.write(b);
}
fin.close();
socket.close();
//bool = true;
} catch (IOException ex){
System.out.println(ex);
}
//}
}
}
|
客户端:
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
|
import java.net.*;
import java.io.*;
public class SocketClient{
Socket s= null ;
DataInputStream inStream= null ;
DataOutputStream outStream= null ;
FileOutputStream fout = null ;
public SocketClient() {
try {
s= new Socket( "192.9.207.52" , 765 ); //把这里的IP改成你运行SocketServer.class的IP
inStream= new DataInputStream(s.getInputStream());
outStream= new DataOutputStream(s.getOutputStream());
fout = new FileOutputStream( "C:/temp/socket/test11.zip" );
s.setSoTimeout( 3000 );
waitData();
}
catch (Exception e){
System.out.println(e.toString());
}
}
void init() throws Exception{
}
void waitData(){
try {
byte [] b = new byte [ 200 ];
int i;
while ((i=inStream.read(b))!=- 1 ){
fout.write(b);
}
fout.flush();
fout.close();
s.close();
} catch (Exception e){
System.out.println(e.toString());
}
}
public static void main(String[] args) {
SocketClient socketClient1 = new SocketClient();
}
}
|
希望本文所述对大家java程序设计有所帮助。