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

作者:小K

来源:麦叔编程

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

原理/流程

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

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

  1. 我们需要先建立一个主机,让他监听对应的端口号。
  2. 如果有客户端访问该端口号建立TCP连接。
  3. 主机收到有客户端上线的提示,并向该客户端发送消息。
  4. 客户端收到消息之后也可以向主机发送消息。
公司电脑不让用IM工具聊天?50行代码写个聊天室

先写个主机端(Server)

import socket

host = 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()                        # 关闭客户端Socket
s.close()                           # 关闭服务端Socket

主机端代码分为三部分,

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

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

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

再写个客户端(Client)

import socket

s = socket.socket()                 # 创建TCP/IP套接字
host = socket.gethostname()         # 获取主机地址
port = 8888
nick_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”之后,断开连接,程序结束(不影响主机端)。

试试功能

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

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

聊天功能;

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

体验非常好!

后记

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

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

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

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

展开阅读全文

页面更新:2024-06-02

标签:聊天室   代码   服务端   客户端   主机   两个   功能   地址   工具   程序   数据   电脑   公司

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top