DataClient2(客戶端上傳文件到服務器端)

本文提供了一个使用Java实现的简单客户端程序示例,该程序能够连接到指定服务器并发送本地文件。通过Socket编程,客户端读取指定路径的文件,并将其逐块发送至服务器端。
import java.io.*;
import java.net.*;

import java.net.*;
import java.io.*;


public class DataClient2 {

        public static final int SERVICE_PORT = 1500;
        public static final int DATA_SIZE = 1024;

        public static void main(String[] args) {
            	String hostName="100.100.100.100";                
        		//String filePath="C:"+File.separatorChar+"電話號碼_Tel.xls";
            	String filePath="C:\\電話號碼_Tel.xls";
                try{
                    Socket client = new Socket(hostName,SERVICE_PORT);
                    System.out.println("Connection established");
                    System.out.println(client.getRemoteSocketAddress());
                    client.setSoTimeout(2000);
                    OutputStream out = client.getOutputStream();
                    readFile(filePath,out);                        
                }catch(Exception e){
                        e.printStackTrace();
                }

        }
        
        /**
         * 將客戶端文件流寫服務器端輸出流
         * @param fis 客戶端文件流
         * @param out 服務器端輸出流
         * @throws Exception
         */
        public static void readFile(String filePath,OutputStream out)throws Exception {
            File fileOut=new File(filePath);
            if(!fileOut.exists()){
                    System.out.println("File Not Found");
                    return;
            }
            FileInputStream fis=new FileInputStream(fileOut);
            PrintStream fileOutS = new PrintStream(out);
            fileOutS.print(filePath+"\r\n");
            byte[] bs = new byte[DATA_SIZE];
            int length;
            System.out.println("Sending data...");
            while ( (length=fis.read(bs)) != -1){
                    out.write(bs,0,length);
                    bs = new byte[DATA_SIZE];
                    Thread.sleep(500);
            }
            System.out.println("Data sending completed");
            fileOutS.close();
            fis.close();
            out.flush();
            out.close();
        }
} 

 附查看端口軟件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值