Java Socket简单的客服端及其服务器端

来源:互联网 发布:ipmsg linux 编辑:程序博客网 时间:2024/06/03 21:35

最近给别人写了个服务器读文件,然后传到客服端,客服端收到消息再写到客服机器中的一个socket程序,socket传输协议用的是TCP,读文件和写文件的路径都用properties配置文件来配置。

客服端文件源代码如下:

package javaSocket;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Properties;

public class SocketClient{
    private Socket skClient;
    public SocketClient(){
     
    }
    public void clientCreate(){
     InputStream in;   
     try {
      in = new BufferedInputStream(new FileInputStream("d:\\test.properties"));
   Properties p = new Properties();
   p.load(in);
   String path = p.getProperty("path1");
      FileOutputStream fos = new FileOutputStream(path);
   skClient = new Socket(InetAddress.getLocalHost(),8888);
   System.out.println("向服务器发出链接请求!");      
      copyStream(skClient.getInputStream(),fos);   
   skClient.close();
   fos.close();
  }catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
    }

    public void copyStream(InputStream is, OutputStream os) throws IOException {
        String line;
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
        line = reader.readLine();
        while (line != null) {
            writer.println(line);
            line = reader.readLine();
        }
        writer.flush(); 
    }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        new SocketClient().clientCreate();
 }

}

 

服务器端的源代码如下:

 

package javaSocket;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Properties;

public class SocketServer extends Thread{
    private Socket skServer;
    public SocketServer(Socket s){
     this.skServer = s;
    }
    public void run(){
     InputStream in;
     try {
      in = new BufferedInputStream(new FileInputStream("d:\\test.properties"));
   Properties p = new Properties();
   p.load(in);
   String path = p.getProperty("path2");
      FileInputStream fis = new FileInputStream(path);
      copyStream(fis,skServer.getOutputStream());
   skServer.close();
   fis.close();
   
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
     
    }
   
    public void copyStream(InputStream is, OutputStream os) throws IOException {
        String line;
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
        line = reader.readLine();
        while (line != null) {
            writer.println(line);
            line = reader.readLine();
        }
        writer.flush(); 
    }
 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
        ServerSocket server = new ServerSocket(8888);
        System.out.println("服务器已经启动,已处于监听状态......");
        while(true){
         SocketServer ss = new SocketServer(server.accept());
         System.out.println("成功响应客服端!");
         ss.start();
        }
 }

}

配置属性文件test.properties:

path1=D:\\123.txt

path2=D:\\456.txt

 

因为写的时间比较急,所以很多地方需要修改。基本功能已经实现了。有兴趣就可以再修改完善。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 四年级数学差生怎么办 给学生讲错题了怎么办 高中作弊被通报怎么办 没收到电子发票怎么办 皇冠草叶子发黄怎么办 脚痒怎么办小窍门 孩子天天玩手机怎么办 征信大数据花了怎么办 衣服容易有水印怎么办? ps楷体有锯齿怎么办 报表打印需要jre怎么办 考试忘记写名字怎么办 ems明信片没收到怎么办 580escl解锁失败怎么办 留学回国人员证明怎么办 员工不签劳动合同怎么办 在日本怎么办韩国签证 在新疆怎么办英国签证 安徽省会考没过怎么办 初中要会考了怎么办 担保人卡被冻结怎么办 188a转永居失败怎么办 刷机忘了id密码怎么办 在澳大利亚怎么办白卡 外国的工作签证怎么办 北京去澳门怎么办签注 专科挂科毕业证怎么办 新西兰预科成绩不合格怎么办 私立转公立学籍怎么办 法国留学拒签怎么办 法国留学签证被拒怎么办 英国留学拒签怎么办 在普高出国怎么办 副高职称不让出国怎么办 没学位现场确认怎么办 香港master挂科怎么办 香港研究生挂科怎么办 加拿大研究生绩点刚合格怎么办 l2续签失败 学校怎么办 珍珠柏盆景黄叶怎么办 导师中途辞职了怎么办