Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71695
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-17 20:15
个人简介

我叫什么干什么的我还是我不知道

文章分类

全部博文(26)

文章存档

2016年(4)

2015年(22)

我的朋友

分类: Java

2015-06-09 14:46:37

服务器

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer{

 public static void main(String args[]) {

  try{
   ServerSocket server=null;
 
   try{
    server=new ServerSocket(4700);
    //创建一个ServerSocket在端口4700监听客户请求
   }catch(Exception e) {
    System.out.println("can not listen to:"+e.getMessage());
    //出错,打印出错信息
   }
   System.out.println("Server waiting");
   Socket socket=null;
   try{
    socket=server.accept();
    //使用accept()阻塞等待客户请求,有客户
    //请求到来则产生一个Socket对象,并继续执行
   }catch(Exception e) {
    System.out.println("Error."+e);
    //出错,打印出错信息
   }
   String line;
   //由Socket对象得到输入流,并构造相应的BufferedReader对象
   BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
   //由Socket对象得到输出流,并构造PrintWriter对象
   PrintWriter os=new PrintWriter(socket.getOutputStream());
   //由系统标准输入设备构造BufferedReader对象
   BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
   //在标准输出上打印从客户端读入的字符串
   System.out.println("Client:"+is.readLine());
   System.out.print("Server:");
   //从标准输入读入一字符串
   line=sin.readLine();
   //如果该字符串为 "bye",则停止循环
   while(!line.equals("bye")){
    //向客户端输出该字符串
    os.println(line); 
    //刷新输出流,使Client马上收到该字符串
    os.flush();
    //在系统标准输出上打印读入的字符串
    //System.out.println("Server:"+line);
    //从Client读入一字符串,并打印到标准输出上
    System.out.println("Client:"+is.readLine());
    System.out.print("Server:");
    //从系统标准输入读入一字符串
    line=sin.readLine();
    
    }//继续循环
    os.close(); //关闭Socket输出流
    is.close(); //关闭Socket输入流
    socket.close(); //关闭Socket 
    server.close();//关闭ServerSocket
  }catch(IOException e){
   System.out.println("Error occur:"+e);//打印出错信息
  }
 }
}

客户端

import java.io.*;

import java.net.*;

public class MyClient {

 public static void main(String args[]) {

        try{

   Socket socket=new Socket("127.0.0.1",4700);
   //向本机的4700端口发出客户请求
   BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
   //由系统标准输入设备构造BufferedReader对象
   PrintWriter os=new PrintWriter(socket.getOutputStream());
   //由Socket对象得到输出流,并构造PrintWriter对象
   BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
   //由Socket对象得到输入流,并构造相应的BufferedReader对象
   System.out.print("Client:");
   String readStr;
   readStr=sin.readLine(); //从系统标准输入读入一字符串
   //若从标准输入读入的字符串为 "bye"则停止循环
   while(!readStr.equals("bye")){
    //将从系统标准输入读入的字符串输出到Server
    os.println(readStr);
    //刷新输出流,使Server马上收到该字符串
    os.flush();
    //System.out.println("Client:"+readStr);
    //在系统标准输出上打印读入的字符串
    System.out.println("Server:"+is.readLine());
    System.out.print("Client:");
    //从Server读入一字符串,并打印到标准输出上
    readStr=sin.readLine(); //从系统标准输入读入一字符串
   } //继续循环
   os.close(); //关闭Socket输出流
   is.close(); //关闭Socket输入流
   socket.close(); //关闭Socket
        }catch(Exception e){
         System.out.println("Error occur: "+ e);
        }
  
 }

}

阅读(753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~