tcp连接

简单的tcp连接

客户端

  1. 连接到服务器 Socket

  2. 发送消息

    package TCP;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.Socket;
    
    //客户端
    public class TcpClientDemo01 {
        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;
                //创建一个socket连接
                 socket =new Socket(ServerIp,port);
                //发送消息
                 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. 接收消息

    package TCP;
    
    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();
                //读取客户端信息
                 is = socket.getInputStream();
                /* 比较low 的写法
                *byte[] buffer = new  byte[1024];
               int len;
               while ((len=is.read(buffer))!=-1){
                   String msg =new String(buffer,0,len);
                   System.out.println(msg);
               }
                **/
                //管道流
                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();
                    }
                }
    
            }
    
        }
    }
     
    
posted @ 2021-03-25 14:15  仅此忆念  阅读(74)  评论(0)    收藏  举报