欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java 网络编程之 TCP 实现简单的聊天系统

时间:2021-03-16 10:19:40|栏目:JAVA代码|点击:

客户端

1、连接服务器 Socket

2、发送消息

package lesson02;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

/**
 * 客户端
 */
public class TcpClientDemo1 {

  public static void main(String[] args) {

    Socket socket = null;
    OutputStream os = null;

    try {
      //1、要知道服务器的地址 端口号
      InetAddress serverIP = InetAddress.getByName("127.0.0.1");
      int port = 9999;
      //2、创建一个 socket 连接
      socket = new Socket(serverIP, port);
      //3、发送消息 IO流
      os = socket.getOutputStream();
      os.write("你好,欢迎学习狂神学Java".getBytes());

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (os != null){
        try {
          os.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (socket != null){
        try {
          socket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }

}

服务端

1、建立服务的端口 ServerSocket

2、等待用户的连接 accept

3、接收用户的消息

package lesson02;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务端
 */
public class TcpServerDemo1 {

  public static void main(String[] args) {

    ServerSocket serverSocket = null;
    Socket socket = null;
    InputStream is = null;
    ByteArrayOutputStream baos = null;

    try {
      //1、我得有一个地址
      serverSocket = new ServerSocket(9999);

      while (true){
        //2、等待客户端连接过来
        socket = serverSocket.accept();
        //3、读取客户端的消息
        is = socket.getInputStream();

        //管道流
        baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len;
        while((len = is.read(buffer)) != -1){
          baos.write(buffer, 0 , len);
        }
        System.out.println(baos.toString());
      }

      /*
      byte[] buffer = new byte[1024];
      int len;
      while ((len = is.read(buffer)) != -1){
        String msg = new String(buffer, 0, len);
        System.out.println(msg);
      }
      */

    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      //关闭资源
      if (baos != null){
        try {
          baos.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (is != null){
        try {
          is.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (socket != null){
        try {
          socket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (serverSocket != null){
        try {
          serverSocket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }

}

服务端

1、建立服务的端口 ServerSocket

2、等待用户的连接 accept

3、接收用户的消息

package lesson02;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务端
 */
public class TcpServerDemo1 {

  public static void main(String[] args) {

    ServerSocket serverSocket = null;
    Socket socket = null;
    InputStream is = null;
    ByteArrayOutputStream baos = null;

    try {
      //1、我得有一个地址
      serverSocket = new ServerSocket(9999);

      while (true){
        //2、等待客户端连接过来
        socket = serverSocket.accept();
        //3、读取客户端的消息
        is = socket.getInputStream();

        //管道流
        baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len;
        while((len = is.read(buffer)) != -1){
          baos.write(buffer, 0 , len);
        }
        System.out.println(baos.toString());
      }

      /*
      byte[] buffer = new byte[1024];
      int len;
      while ((len = is.read(buffer)) != -1){
        String msg = new String(buffer, 0, len);
        System.out.println(msg);
      }
      */

    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      //关闭资源
      if (baos != null){
        try {
          baos.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (is != null){
        try {
          is.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (socket != null){
        try {
          socket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (serverSocket != null){
        try {
          serverSocket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }

}

上一篇:浅谈java中对集合对象list的几种循环访问

栏    目:JAVA代码

下一篇:Java static方法用法实战案例总结

本文标题:Java 网络编程之 TCP 实现简单的聊天系统

本文地址:http://www.codeinn.net/misctech/81499.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有