公司电脑不让用IM工具聊天?50行代码写个聊天室

公司电脑不让用IM工具聊天?50行代码写个聊天室

作者:小K

来源:麦叔编程

今天教大家写个聊天室功能,该程序只有几十行代码,这比动辄几百兆的通讯软件包来说简直就是“神纯净版本”。而且关闭解释环境之后是不会留下任何信息痕迹的,所以可以放心使用。

原理/流程

需要用到TCP/IP协议,Socket技术。

  • 我们需要先建立一个主机,让他监听对应的端口号。
  • 如果有客户端访问该端口号建立TCP连接。
  • 主机收到有客户端上线的提示,并向该客户端发送消息。
  • 客户端收到消息之后也可以向主机发送消息。
  • 先写个主机端(Server)

    import sockethost = socket.gethostname() #获取主机地址port = 8888 #设置端口号nick_name = “麦叔”s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind((host, port)) # 绑定地址s.listen(1) # 设置最多连接数量sock, addr = s.accept() # 被动接收TCP客户端连接print(‘Connected’)info = sock.recv(1024).decode() # 接收Client数据while ‘Quit’ not in info: if info: print(info) send_data = input(‘输入发送内容:’) send_data = nick_name + “: ” + send_data sock.send(send_data.encode()) # 发送TCP数据包 if ‘Quit’ in send_data: break info = sock.recv(1024).decode() # 接收Client数据sock.close() # 关闭客户端Sockets.close() # 关闭服务端Socket

    主机端代码分为三部分,

    第一部分:构建主机的HOST和PORT…创建监听任务;

    第二部分:接收发送 数据;

    第三部分:当输入“Quit”之后,断开连接,程序结束(影响客户端)。

    再写个客户端(Client)

    import sockets = socket.socket() # 创建TCP/IP套接字host = socket.gethostname() # 获取主机地址port = 8888nick_name = “小K”s.connect((host, port)) # 初始化TCP服务器连接print(‘Client Connected’)info = ”while ‘Quit’ not in info: send_data = input(‘输入发送的内容:’) send_data = nick_name + “: ” + send_data s.send(send_data.encode()) # 发送TCP数据 if ‘Quit’ in send_data: break info = s.recv(1024).decode() #接收服务端数据 print(info)s.close() # 关闭Socket连接

    主机端代码分也为三部分,

    第一部分:构建HOST和PORT信息,并与主机端创建连接;

    第二部分:接收发送 数据;

    第三部分:当输入“Quit”之后,断开连接,程序结束(不影响主机端)。

    试试功能

    使用两个命令行终端,分别运行两个代码文件;

    聊天功能;

    体验非常好!

    后记

    上文的两段代码只是实现了最简单的聊天功能,如果想做的更像一个聊天室,可以在上面的代码中对其进行深度开发。

    最后可能会开发出一个QQ一样的程序~

    CDA数据分析师分享案例,欢迎大家留言分享你的建议。

    郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
    (0)
    用户投稿
    上一篇 2022年6月21日
    下一篇 2022年6月21日

    相关推荐

    • A股上演退市潮,退市企业和股民何去何从

      一、A股退市企业数量激增,退市新规显威力 大家对企业上市或多或少都会有些了解。而企业退市则对我们来说比较陌生,今天就随本文来大体了解一下吧。 从历史数据来看,自A股于1990年开始…

      2022年8月4日
    • 让你人际关系开挂的13个小技巧

      1、别人发微信说「在么」的时候,我tm一律不回。 只要他不发下一句,我都装作看不见。 2、别人自嘲的时候,只是想缓和下气氛。 如果你附和他的话,气氛就更尴尬了。 3、不要把希望寄托…

      2022年7月24日
    • 金属+树脂,卡西欧GG系列介绍

      在上一篇卡西欧G-shock的系列介绍文章里,我们已经把MR-G的历史给介绍了,反响比我想象中好那么一丢丢,今天也抓紧,把MT-G系列介绍给更新了,方便大家对比阅读。 本文一共88…

      2022年8月16日
    • 002407 多氟多

      300287 飞利信 关键点位:支撑位 4.5元 阻力位 6.0元 基本面: 公司是一家向用户提供智能会议系统整体解决方案及相关服务的企业。涉及量子科技、RCS富媒体、网络安全等概…

      2022年6月19日
    • 为什么很多人认为,在小公司上班就是“入坑”呢?

      工作12年,在大公司待过也在小公司做过,只能说无论是大公司还是小公司各有各的特点,但是相对而言,大公司确实比小公司更有保障。 在小公司上班就是“入坑”主要体现在以下方面: 小公司体…

      2022年6月30日
    • 大数据扫黄,是如何发现“你”的?网友:看完涨知识了

      相信很多人都能发现一种现象,就是我们在网页上搜过的信息,在下次浏览网页的时候就能够发现。在短视频点赞过一个视频之后,会经常刷到类似的视频。出现这种现象的原因,就是由于大数据。 大数…

      2022年7月23日
    • 电脑着火了应该怎么办「电脑着火正确扑灭方法」

      电脑如果着火的话,首先要拔掉电源。 然后用一个湿毛巾或者湿被子,也就是湿的一块比较厚的布,直接盖在电脑上,这样就可以灭活了,可以把我与周围的空气隔绝,这样它自然就灭了。一定不要单独…

      2022年5月6日
    • Java 通用配置版本配置实现

      Java 通用配置 (一)设计 (二)JVM和环境变量实现 (三)用户配置实现 (四)版本配置实现 本系列参考实现: https://gitee.com/mybatis-mappe…

      2022年7月11日
    • 测网速(测网速哪个软件最准确)

      本文主要讲的是测网速,以及和测网速哪个软件最准确相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 怎么测试网速? 可以使用360安全卫士来测量自己电脑网络的网速,具…

      2022年11月6日
    • 618销售数据比去年高?你们相信吗?消费力弱是真事实

      618购物节已于18日正式落幕,根据京东最新公布的618战报数据显示,2022年618购物节京东总成交额达到3793亿元人民币,并创下新高,相较于去年2021京东618的3438亿…

      2022年6月23日

    联系我们

    联系邮箱:admin#wlmqw.com
    工作时间:周一至周五,10:30-18:30,节假日休息