package itat.s11_7;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Server {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerSocket server=null;
ServerThread thread;
Socket you=null;
while(true){
try {
server=new ServerSocket(4331);
you=server.accept();
System.out.println("客户的地址:"+you.getInetAddress());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(you!=null){
new ServerThread(you).start();
}
}
}
}
class ServerThread extends Thread{
Socket socket;
ZipOutputStream out;
String s=null;
ServerThread(Socket t){
socket = t;
try {
out=new ZipOutputStream(socket.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void run(){
try {
out.putNextEntry(new ZipEntry("Example.java"));
FileInputStream reader=new FileInputStream("Example.java");
byte b[]=new byte[1024];
int n=-1;
while((n=reader.read(b,0,1024))!=-1){
out.write(b,0,n);
}
out.putNextEntry(new ZipEntry("E.java"));
reader=new FileInputStream("E.java");
n=-1;
while((n=reader.read(b,0,1024))!=-1){
out.write(b,0,n);
}
reader.close();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package itat.s11_7;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class Client extends Frame implements Runnable,ActionListener{
/**
* @param args
*/
Button connection,getFile;
TextArea showResult;
Socket socket=null;
ZipInputStream in;
Thread thread;
public Client(){
socket=new Socket();
connection=new Button("连接服务器,获取文件内容");
setLayout(new FlowLayout());
showResult=new TextArea(10,28);
add(connection);
add(showResult);
connection.addActionListener(this);
thread=new Thread(this);
setBounds(100,100,460,410);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args) {
Client win=new Client();
}
public void run() {
byte b[]=new byte[1024];
ZipEntry zipEntry=null;
while(true){
try {
while((zipEntry=in.getNextEntry())!=null){
showResult.append("/n"+zipEntry.toString()+":/n");
int n=-1;
while((n=in.read(b,0,1024))!=-1){
String str=new String(b,0,n);
showResult.append(str);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==connection){
if(socket.isConnected()){}
else {
try {
InetAddress address=InetAddress.getByName("127.0.0.1");
InetSocketAddress socketAddress=new InetSocketAddress(address,4331);
socket.connect(socketAddress);
in=new ZipInputStream(socket.getInputStream());
thread.start();
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException ye) {
// TODO Auto-generated catch block
ye.printStackTrace();
}
}
}
}
}