• (原创)小程序设计(四)一起来聊天吧!


      解决上述问题之后,作为“客户”的我,又觉得启动的时候启动的是若干个客户端窗口文件和一个服务器文件,服务器的输出都是在控制台输出的,有了之前解决问题的经验,考虑能不能写一个服务器窗口文件,将服务器的输出都放在窗口里面,这样启动的时候都是启动的是窗口文件,个人感觉好一些。

      于是有了修改后的第二版程序:

      1.将服务器输出的文本内容在窗口显示出来

      2.添加关闭服务器的按钮

      

      为了解决这些问题,特地

      参考了 http://www.codeweblog.com/%E5%AE%9E%E7%8E%B0%E5%B0%86%E6%8E%A7%E5%88%B6%E5%8F%B0%E8%BE%93%E5%87%BA%E4%BF%A1%E6%81%AF%E8%BD%AC%E5%88%B0jtextarea%E4%B8%AD/

      这篇博客,感觉这篇博客思路很奇妙啊,

      主要运用了重写system相关方法的办法,可以将所有的syso代码块的输出都输出到area当中去。

      添加代码为:

    public void setConsoleMessateToArea() {
            
            OutputStream textAreaStream = new OutputStream() {
                
                @Override
                public void write(int b) throws IOException {
                    area.append(String.valueOf((char)b));
                }
                
                public void write(byte b[], int off, int len) throws IOException {
                    area.append(new String(b, off, len));
                }
                
                public void write(byte b[]) throws IOException {
                    area.append(new String(b));
                }
            };
            
            PrintStream myOut = new PrintStream(textAreaStream);
            System.setOut(myOut);
            System.setErr(myOut);
            
        }

      效果展示图:

       

      

      可能会有的第三版程序:

      1.添加强制某一个客户端下线功能(不过你一个服务器做这个是不是不太好?)

      2.服务器显示出所有参与聊天的成员

      3.客户端显示当前参与聊天的数目

  • 相关阅读:
    简单的Makefile
    共享库
    链接静态库
    /proc/uptime参数的意义
    磁盘挂载失败
    linux环境变量设置
    使用systemd-analyze 工具来分析各个服务进程的启动性能
    面试-2020C/C++后台开发深信服科技股份有限公司一面凉经(一问三不知,我是真的菜。。。)
    笔记-C/C++工程师面试笔记收集整理
    SpringCloud-分布式与集群的使用四(断路器Hystrix)
  • 原文地址:https://www.cnblogs.com/BigJunOba/p/9030005.html
Copyright © 2020-2023  润新知