zoukankan      html  css  js  c++  java
  • TCP通信小实例

    服务端:

    package com.socket.tcp;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /**
     * 基于TCP协议通信,服务端
     */
    public class Server
    {
        public static void main(String[] args)
        {
            ServerSocket serverSocket = null;
            Socket socket = null;
            BufferedReader in = null;
            PrintWriter out = null;
            try
            {
                serverSocket = new ServerSocket(10000);
                socket = serverSocket.accept();
                in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                out = new PrintWriter(socket.getOutputStream());
                while (true)
                {
                    String str = in.readLine();
                    System.out.println("来自客户端的:" + str);
                    out.println("服务端收到了来自客户端的:" + str);
                    out.flush();
                    if ("end".equals(str))
                    {
                        break;
                    }
                }
    
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            finally
            {
                try
                {
                    in.close();
                    out.close();
                    socket.close();
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
    
    }

    客户端:

    package com.socket.tcp;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    
    public class Client
    {
        /**
         * 基于TCP协议通信,客户端
         */
        public static void main(String[] args)
        {
    
            Socket socket = null;
            BufferedReader in = null;
            PrintWriter out = null;
            BufferedReader wt = null;
            try
            {
                socket = new Socket("127.0.0.1", 10000);//InetAddress.getLocalHost()
                in = new BufferedReader(new InputStreamReader(socket.getInputStream()));//收到的内容
                wt = new BufferedReader(new InputStreamReader(System.in));
                out = new PrintWriter(socket.getOutputStream());//获取输出流,发送的
                while (true)
                {
                    String str = wt.readLine();
                    out.println(str);
                    out.flush();
                    if ("end".equals(str))
                    {
                        break;
                    }
                    System.out.println(in.readLine());//收到的
                }
    
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            finally
            {
                try
                {
                    in.close();
                    out.close();
                    socket.close();
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
    
    }
  • 相关阅读:
    csuoj 1391: Boiling Vegetables
    csuoj 1392: Number Trick
    nyist 78 圈水池
    1393: Robert Hood 旋转卡壳 凸包
    模板 旋转卡壳 凸包
    模板 凸包 旋转卡壳
    ASP.NET Web API2返回值处理流程
    DependencyInjection源码解读之ServiceProvider
    深入研究EF Core AddDbContext 引起的内存泄露的原因
    私有云方案——利用阿里云云解析实现DDNS
  • 原文地址:https://www.cnblogs.com/chrono/p/4048226.html
Copyright © 2011-2022 走看看