公司电脑不让用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)删除。
    上一篇 2022年6月21日 12:21
    下一篇 2022年6月21日 12:21

    相关推荐

    联系我们

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