Java 使用套接字的视频文件传输

Java 使用套接字的视频文件传输,java,sockets,Java,Sockets,我有使用套接字将文本文件从服务器传输到客户端的代码。我现在想将视频文件从服务器传输到客户端。我如何才能做到这一点。如何更改代码以包含视频文件?有人可以帮助我吗 服务器代码 import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Se

我有使用套接字将文本文件从服务器传输到客户端的代码。我现在想将视频文件从服务器传输到客户端。我如何才能做到这一点。如何更改代码以包含视频文件?有人可以帮助我吗

服务器代码

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class SimpleFileServer {

public final static int SOCKET_PORT = 13267;  // 
public final static String FILE_TO_SEND = "c:/temp/source.pdf";    

public static void main (String [] args ) throws IOException {
FileInputStream fis = null;
BufferedInputStream bis = null;
OutputStream os = null;
ServerSocket servsock = null;
Socket sock = null;
try {
  servsock = new ServerSocket(SOCKET_PORT);
  while (true) {
    System.out.println("Waiting...");
    try {
      sock = servsock.accept();
      System.out.println("Accepted connection : " + sock);
      // send file
      File myFile = new File (FILE_TO_SEND);
      byte [] mybytearray  = new byte [(int)myFile.length()];
      fis = new FileInputStream(myFile);
      bis = new BufferedInputStream(fis);
      bis.read(mybytearray,0,mybytearray.length);
      os = sock.getOutputStream();
  System.out.println("Sending " + FILE_TO_SEND + "(" + mybytearray.length + "bytes)");    
      os.write(mybytearray,0,mybytearray.length);
      os.flush();
      System.out.println("Done.");
    }
    finally {
      if (bis != null) bis.close();
      if (os != null) os.close();
      if (sock!=null) sock.close();
    }
  }
}
finally {
  if (servsock != null) servsock.close();
  }
  }
  }
客户端代码

 import java.io.BufferedOutputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.Socket;

 public class SimpleFileClient {

   public final static int SOCKET_PORT = 13267;      
   public final static String SERVER = "127.0.0.1";  
   public final static String
   FILE_TO_RECEIVED = "c:/temp/source-downloaded.pdf";  

   public final static int FILE_SIZE = 6022386; 

   public static void main (String [] args ) throws IOException {
   int bytesRead;
   int current = 0;
   FileOutputStream fos = null;
   BufferedOutputStream bos = null;
   Socket sock = null;
   try {
  sock = new Socket(SERVER, SOCKET_PORT);
  System.out.println("Connecting...");

  // receive file
  byte [] mybytearray  = new byte [FILE_SIZE];
  InputStream is = sock.getInputStream();
  fos = new FileOutputStream(FILE_TO_RECEIVED);
  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();
  System.out.println("File " + FILE_TO_RECEIVED
      + " downloaded (" + current + " bytes read)");
}
finally {
  if (fos != null) fos.close();
  if (bos != null) bos.close();
  if (sock != null) sock.close();
 }
  }

 }

1将
source.pdf
更改为
source.avi
(或任何视频文件的名称)。2将
source downloaded.pdf
更改为
source downloaded.avi
(或者调用下载的文件)。三。完成了吗?它很有用…但它不会传输整个视频…只有前几秒钟…我需要增加文件大小吗?文件大小是视频文件大小吗?没有视频大于文件大小…我会增加文件大小