• 基于TCP协议的服务器(单线程)


    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    import java.util.Timer;
    import java.util.TimerTask;
     
    public class JabberServer
    {
     
        public static void main(String[] args) throws IOException
        {
            // TODO 自动生成的方法存根
            new FuWuQi();
        }
     
    }
     
    class FuWuQi
    {
        public static final int port = 8080;
     
        BufferedReader in = null;
        PrintWriter out = null;
     
        class JieShou extends TimerTask
        {
            public void run()
            {
                String string=null;
                try
                {
                    string=in.readLine();
                    if(string!=null)
                    {
                        System.out.println(string);
                    }
     
                } catch (Exception e)
                {
                    // TODO: handle exception
                }
     
            }
        }
     
     
        public FuWuQi() throws IOException
        {
            ServerSocket s = new ServerSocket(port);// 创建一个服务器对象 它扫描的端口是 port
            System.out.println("开始");
            try
            {
                Socket socket = s.accept();// 此时程序会进入阻塞状态 即等待一个客户端连接 但 其他程序会正常
                try
                {
                    System.out.println("有一个客户机连接" + socket);
                    in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);// true 参数可以 自动刷新流 若没有刷新 信息就不会进入网络除非缓冲区溢出
                    // PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
     
                    Timer timer=new Timer();
                    JieShou jieShou=new JieShou();
     
     
                    timer.schedule(jieShou, 10,200);
                    while(true)
                    {
                        Scanner in1=new Scanner(System.in);
                        out.println(in1.next());
                    }
                //    timer.cancel();
     
     
                } catch (Exception e)
                {
     
                } finally
                {
                    System.out.println("客户端 关闭");
                    socket.close();// 套接字使用了非常重要的内存资源 所以一定要在用完之后关闭他们
                }
     
            } catch (Exception e)
            {
                // TODO: handle exception
            } finally
            {
                System.out.println("服务端关闭");
                s.close();
                System.exit(0);
            }
     
        }
    }
    梦里不知身是客,一晌贪欢。
  • 相关阅读:
    bzoj 1031: [JSOI2007]字符加密Cipher
    [BZOJ5011][JXOI2017]颜色
    [BZOJ4765]普通计算姬(分块+树状数组)
    [BZOJ3261]最大异或和(可持久化Trie)
    [BZOJ4861][BJOI2017]魔法咒语(AC自动机+矩阵优化DP)
    [BZOJ2286][SDOI2011]消耗战(虚树DP)
    [BZOJ2109][NOI2010]航空管制(贪心+拓扑)
    [BZOJ1305][CQOI2009]跳舞(网络流)
    [Nescafé41]编码病毒(循环卷积)
    [Nescafé41]异化多肽(多项式求逆元)
  • 原文地址:https://www.cnblogs.com/dccmmtop/p/5717738.html
Copyright © 2020-2023  润新知