java基于socket传输zip文件功能示例
本文实例讲述了java基于socket传输zip文件的方法。分享给大家供大家参考,具体如下:
服务器端程序:
importjava.io.*;
importjava.net.*;
importjava.io.BufferedInputStream;
publicclassSocketServer{
ServerSocketss=null;
Sockets=null;
DataInputStreaminStream=null;
DataOutputStreamoutStream=null;
FileInputStreamfin=null;
publicSocketServer(){
try{
ss=newServerSocket(765);
s.setSoTimeout(3000);
}catch(Exceptione){
System.out.println(e.toString());
}
}
voidwaitForClient(){
try{
while(true){
s=ss.accept();
ThreadServerthread=newThreadServer(s);
thread.start();
}
}catch(Exceptione){
System.out.println(e.toString());
}
}
publicstaticvoidmain(String[]args){
SocketServersocketServer1=newSocketServer();
socketServer1.waitForClient();
}
}
线程类:
importjava.io.*;
importjava.net.*;
classThreadServerextendsThread{
privateSocketsocket;
privateDataInputStreaminStream=null;
privateDataOutputStreamoutStream=null;
privateFileInputStreamfin=null;
publicThreadServer(Socketsock){
this.socket=sock;
}
publicvoidrun(){
booleanbool=false;
//while(!bool){
try{
inStream=newDataInputStream(socket.getInputStream());
outStream=newDataOutputStream(socket.getOutputStream());
fin=newFileInputStream("C:/temp/socket/200212060001_ds.zip");
//socket.setSoTimeout(3000);
byte[]b=newbyte[200];
inti;
while((i=fin.read(b))!=-1){
outStream.write(b);
}
fin.close();
socket.close();
//bool=true;
}catch(IOExceptionex){
System.out.println(ex);
}
//}
}
}
客户端:
importjava.net.*;
importjava.io.*;
publicclassSocketClient{
Sockets=null;
DataInputStreaminStream=null;
DataOutputStreamoutStream=null;
FileOutputStreamfout=null;
publicSocketClient(){
try{
s=newSocket("192.9.207.52",765);//把这里的IP改成你运行SocketServer.class的IP
inStream=newDataInputStream(s.getInputStream());
outStream=newDataOutputStream(s.getOutputStream());
fout=newFileOutputStream("C:/temp/socket/test11.zip");
s.setSoTimeout(3000);
waitData();
}
catch(Exceptione){
System.out.println(e.toString());
}
}
voidinit()throwsException{
}
voidwaitData(){
try{
byte[]b=newbyte[200];
inti;
while((i=inStream.read(b))!=-1){
fout.write(b);
}
fout.flush();
fout.close();
s.close();
}catch(Exceptione){
System.out.println(e.toString());
}
}
publicstaticvoidmain(String[]args){
SocketClientsocketClient1=newSocketClient();
}
}
更多关于java相关内容感兴趣的读者可查看本站专题:《JavaSocket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。