zoukankan      html  css  js  c++  java
  • java 网络编程中 TCP 实现聊天

    编写代码

    1,新建服务端 TcpServerDemo01

    package com.xiang.lesson02;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    //服务端
    public class TcpServerDemo01 {
        public static void main(String[] args) {
            ServerSocket socket = null;
            Socket accept = null;
            InputStream inputStream = null;
            ByteArrayOutputStream byteArrayOutputStream = null;
    //        1,需要有一个地址
    //        new 一个地址;
            try {
                socket = new ServerSocket(999);
                while (true){
                    //        2, 等待客户端连接
                    accept = socket.accept();
    //        3, 读取 客户端的消息
                    inputStream = accept.getInputStream();
    
    //            管道流
                    byteArrayOutputStream = new ByteArrayOutputStream();
                    byte[] buffer = new byte[1024];
                    int len;
                    while ((len = inputStream.read(buffer)) != -1) {
                        byteArrayOutputStream.write(buffer, 0, len);
                    }
                    System.out.println(byteArrayOutputStream.toString());
                }
    
    
    
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
    //关闭资源
                if (byteArrayOutputStream != null) {
    
                    try {
                        byteArrayOutputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (inputStream != null) {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (accept != null) {
    
                    try {
                        accept.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (socket != null) {
    
                    try {
                        socket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    
    

    2,新建服务端 TcpClientDemo01

    package com.xiang.lesson02;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import java.nio.charset.StandardCharsets;
    
    //客户端
    public class TcpClientDemo01 {
        public static void main(String[] args) {
            Socket socket = null;
            OutputStream outputStream = null;
    
    //        1,要知道服务器的地址
    //        连这个地址 localhost 999
            try {
                InetAddress serverIP = InetAddress.getByName("127.0.0.1");
    
    //          2  端口号
                int port = 999;
    
    //            3,创建一个 socket 连接
                socket = new Socket(serverIP, port);
    
    //            4,发送消息 io 流
    //            输出 流
                outputStream = socket.getOutputStream();
    //            写
                outputStream.write("你好,欢迎学习到了网络编程".getBytes(StandardCharsets.UTF_8));
    
    
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
    
                if (outputStream != null) {
                    try {
                        outputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (socket != null) {
                    try {
                        socket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
    
                }
            }
        }
    }
    
    

    3,运行结果

  • 相关阅读:
    HAproxy 1.5 dev14 发布
    IBM/DW 使用 Java 测试网络连通性的几种方法
    Skype 4.1 Linux 发布,支持微软帐号登录
    Dorado 7.1.20 发布,Ajax的Web开发平台
    Aspose.Slides for Java 3.0 发布
    开发版本 Wine 1.5.18 发布
    BitNami Rubystack 开始支持 Ruby 2.0
    XWiki 4.3 正式版发布
    Silverlight实例教程 Out of Browser的Debug和Notifications窗口
    Silverlight实例教程 Out of Browser与Office的互操作
  • 原文地址:https://www.cnblogs.com/d534/p/15229139.html
Copyright © 2011-2022 走看看