Java communication software design 3(updating....)

来源:互联网 发布:德力西选型软件 编辑:程序博客网 时间:2024/06/07 04:10

The third server and client program is about the file transfering.....

 

FileServer.java:

import java.net.*;import java.io.*;public class FileServer {  public static void main (String [] args ) throws IOException {    // create socket    ServerSocket servsock = new ServerSocket(1234);    while (true) {      System.out.println("File Server Waiting for Client...");      Socket sock = servsock.accept();      System.out.println("Accepted connection : " + sock);      // sendfile      File myFile = new File ("CSD.ppt");      byte [] mybytearray  = new byte [(int)myFile.length()];      FileInputStream fis = new FileInputStream(myFile);      BufferedInputStream bis = new BufferedInputStream(fis);      bis.read(mybytearray,0,mybytearray.length);      OutputStream os = sock.getOutputStream();      System.out.println("Sending...");      os.write(mybytearray,0,mybytearray.length);      os.flush();      sock.close();      }    }}


FileClient.java:

import java.net.*;import java.io.*;public class FileClient{  public static void main (String [] args ) throws IOException {    int filesize=6022386; // filesize temporary hardcoded    long start = System.currentTimeMillis();    int bytesRead;    int current = 0;    // localhost for testing    Socket sock = new Socket("127.0.0.1",1234);    System.out.println("Connecting...");    // receive file    byte [] mybytearray  = new byte [filesize];    InputStream is = sock.getInputStream();    FileOutputStream fos = new FileOutputStream("CSD.ppt");    BufferedOutputStream bos = new BufferedOutputStream(fos);    bytesRead = is.read(mybytearray,0,mybytearray.length);    current = bytesRead;       do {       bytesRead =          is.read(mybytearray, current, (mybytearray.length-current));       if(bytesRead >= 0) current += bytesRead;    } while(bytesRead > -1);    bos.write(mybytearray, 0 , current);    bos.flush();    long end = System.currentTimeMillis();    System.out.println(end-start);    bos.close();    sock.close();  }}


Goal: the file server send the csd.ppt to file client:

the following gif is the test result:

 

 

 

 

原创粉丝点击