zoukankan      html  css  js  c++  java
  • TCP实现聊天

    TCP实现聊天

    客户端

    1.连接服务器 Socket

    2.发送消息

    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    //客户端
    public class TcpClientDemo01 {
        public static void main(String[] args){
            Socket socket=null;
            OutputStream os=null;
            //1.要知道服务器的地址
            try {
                InetAddress serverIP=InetAddress.getByName("127.0.0.1");
                //2.端口号
                int port=9999;
                //3.创建一个socket连接
                socket=new Socket(serverIP,port);
                //4.发送消息IO流
                os=socket.getOutputStream();
    
                os.write("你好,郝雨霏".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.接收用户的消息

    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 serverSocket=null;
            Socket socket=null;
            InputStream is=null;
            ByteArrayOutputStream baos=null;
            try {
                //1.我得有一个地址
                serverSocket = new ServerSocket(9999);
                //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());
    
    
            } 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();
                }
            }
    
    
            }
        }
    }
    
    

    结果展示:

    image-20210210213943896

  • 相关阅读:
    20169204,EXP 3:Java object
    20169204,EXP 2:Java object
    20169204,exp1:Familiar with the Java development environment(Linux+IDEA)
    20169204 2016-2017-2 <Mobbile Platform Development and Practice> Learning Summary, Seventh Week
    第一次使用MarkDown写博客
    理解IOC
    .net与技术经理面谈时经常被提问到的相关技术点
    缓存二、HttpRuntime.Cache用法
    缓存一、Asp.net页面缓存
    一次提交涉及两个数据库处理
  • 原文地址:https://www.cnblogs.com/fyhjy/p/14396773.html
Copyright © 2011-2022 走看看