/*************************************** Server **************************************** ****************************** Author: Gong haiping 2006.7.29 *************************/ import java.io.*; import java.net.*;
public class Server { static final int size = 10240; static String usrDir = System.getProperty("user.dir"); static String DiskInfoXML = usrDir + "disk_info.xml";
public static void main(String argv[]) { DatagramSocket sd = null; DatagramPacket packet = null; String diskRequest; try { sd = new DatagramSocket(7777); //建立socket連接 System.out.println("Server Started ..."); while (true) //一直監聽 { byte[] buffer = new byte[size]; packet = new DatagramPacket(buffer, size); sd.receive(packet); byte[] data = packet.getData(); int port = packet.getPort(); int len = packet.getLength(); InetAddress address = packet.getAddress(); diskRequest = new String(buffer); //打印獲取內容 System.out.println("diskRequest = /n" + diskRequest); FileOutputStream fout=new FileOutputStream(DiskInfoXML); fout.write(buffer,0,len); //寫進文件 fout.close(); System.out.println(len+" bytes received"); } } catch (SocketException e) { System.out.println(e.toString()); } catch (IOException e) { System.out.println(e.toString()); } } }
/************************************** Client **************************************** ****************************** Author: Gong haiping 2006.7.29 ************************/ import java.io.*; import java.net.*;
public class Client { public static void main(String argv[]) { try { int bufferSize = 1024; String remoteHost="192.168.208.138"; int remotePort=7777; String usrDir = System.getProperty("user.dir"); String diskInfoXML = usrDir + "disk_info.xml"; File f=new File(diskInfoXML); FileInputStream fr = new FileInputStream(f); BufferedInputStream br = new BufferedInputStream(fr); Long l=Long.valueOf(f.length()); int len=l.intValue(); //獲取文件內容長度 byte[] buffer = new byte[len]; br.read(buffer,0,len); for(int i=0;i<buffer.length;i++){ //打印文件內容 System.out.print((char)buffer); } Socket sd = new Socket(remoteHost, remotePort,false); InputStream in = sd.getInputStream(); OutputStream out = sd.getOutputStream(); out.write(buffer,0,len); out.flush(); } catch (IOException e) { System.out.println(e.toString()); } System.out.println("Send OK ..."); } } |
|