当前位置:编程学习 > JAVA >>

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

The third server and client program is about the file transfering.....
 
FileServer.java:
[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:
[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:
 
 
 
 

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,