⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test5server.java

📁 JAVA中TCP协议传送文件的示例
💻 JAVA
字号:
import java.io.*; 
import java.net.*;
 /*
  编写一个基于TCP的文件传输程序,要求文件名作为程序的参数输入或者在执行程序的过程中输入。
  每次传输的数据不能超过100个字节。即如果文件的字节数超过100个字节时,需要将文件分割再发送;
  当接收到数据时,需要将数据重新封装到一个文件中。
 */
public class test5Server
{ 
       public static void main(String[] args)throws Exception
	  {
		      System.out.println("服务器已经成功启动,等待客户确认连接。。。。。。");
              ServerSocket ss=new ServerSocket(7000);//创建文件流用来读取文件中的数据,监听的端口为:7000
              Socket client=ss.accept();
              String s;//用来接收文件名
			  int i=0;
              System.out.println("客户端确认连接,请输入要传输的文件(包括后缀名):");
              InputStreamReader in=new  InputStreamReader(System.in);
        	  BufferedReader bf=new BufferedReader(in);
        	  s=bf.readLine();//获得文件名

			 FileInputStream fn=new FileInputStream(new File(s)); //获取文件 
 
			 OutputStream get=new DataOutputStream(new BufferedOutputStream(client.getOutputStream()));  
 
              byte[] buf=new byte[100]; //创建文件读取缓冲区,每次只能读取100个字节
              int num=fn.read(buf);
 
              while(num!=(-1))//判断是否读完文件
			  { 
				     i=i+100;
                     get.write(buf,0,num);//把文件数据写出缓冲区
                     get.flush();//刷新缓冲区把数据写往客户端
					 System.out.println("第"+i+"个字节发送完成");
                     num=fn.read(buf);//继续从文件中读取数据 
              }
 
              fn.close(); 
              get.close(); 
			  System.out.println("\n文件发送完成,程序退出");
       }
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -