简单Socket交互程序。。。

public class SocketWrapper {
  
 private Socket socket;
 
 private BufferedReader inputReader; //读数据
  
 private BufferedWriter outputWriter; //写数据
 
 public SocketWrapper(Socket socket) throws IOException {
  this.socket = socket;
  this.inputReader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GBK"));
  this.outputWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream() , "GBK"));
 }
 
 public String readLine() throws IOException {
  return inputReader.readLine();
 }
 
 public void writeLine(String line) throws IOException {
  outputWriter.write(line + '\n');
  outputWriter.flush();
 }
 
 public void close() {
  try {
   this.socket.close();
  }catch(Exception e) {
   /*this body code need you write*/
  }
 } }

这个是SocketWrapper封装了客户端和服务器传输的数据接口

 
 public static void main(String []args) throws IOException, InterruptedException {
  Scanner scanner = new Scanner(System.in);
  SocketWrapper socket = new SocketWrapper(new Socket("localhost" , 8888));
  try {
   System.out.println("已经连接上服务器端,现在可以输入数据开始通信了");
   String sendMsg = scanner.nextLine();  //输入数据
   socket.writeLine(sendMsg);//发送消息
   String recivedMsg = socket.readLine();
   while(!"close".equals(recivedMsg)) {
    System.out.println("===【服务器返回】===>" + recivedMsg);
    sendMsg = scanner.nextLine();
    socket.writeLine(sendMsg);//发送消息
    recivedMsg = socket.readLine();
   }
   System.out.println("我是客户端,结束了!");
  }finally {
   if(socket != null)
    socket.close();
  }
 }

客户端发送和接收数据,当服务器返回"close"的时候,关闭socket连接

 
 public static void main(String []args) throws IOException {
  ServerSocket serSocket = new ServerSocket(8888);
  System.out.println("端口已经打开为8888,开始准备接受数据");
  SocketWrapper socket = null;
  try {
   socket = new SocketWrapper(serSocket.accept());
   String line = socket.readLine();
   while(!"bye".equals(line)) {
    System.out.println("客户端传来数据:" + line);
    socket.writeLine("我接收到你的数据:" + line);
    line = socket.readLine();
   }
   socket.writeLine("close");
  }finally {
   if(socket != null)
    socket.close();
  }
  
 }

服务器端发送和接收数据,当客户端发送"bye"的时候,关闭socket连接

你可能感兴趣的:(聊天机制)