前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python打造一个互动交友聊天室,免费在线聊天

Python打造一个互动交友聊天室,免费在线聊天

作者头像
荣仔_最靓的仔
发布2021-02-02 14:28:53
1.1K0
发布2021-02-02 14:28:53
举报
文章被收录于专栏:一些有趣的Python案例

男女撩人的套路情话一问一答,各种套路满满的句子对话。接下来跟随我一起学习如何用 python 语言实现轻松撩人。

目录

1 项目准备

1.1 了解你的本地主机地址

1.2 辅助工具——网络调试助手

1.3 环境配置

2 编写代码

2.1 编写UDP程序发送socket数据

2.2 编写UDP程序接收socket数据

2.3 聊天器


1 项目准备

1.1 了解你的本地主机地址

win+R
win+R

输入

cmd
cmd

,在终端输入

{\color{Red} ipconfig}
{\color{Red} ipconfig}

,即可看到你的本地主机地址。

1.2 辅助工具——网络调试助手

下载地址:链接:https://pan.baidu.com/s/1vt8DWfUWyQ97IpAoSOInLA 提取码:c1fq

1.3 环境配置

操作系统:windows、linux 等均可

Python:3.6 以上均可

包库:socket

2 编写代码

2.1 编写UDP程序发送socket数据

编码思路

代码语言:javascript
复制
1、导包 socket
2、初始化一个 socket
3、调用 socket的一个方法发送消息数据
4、关闭 socket
代码语言:javascript
复制
'''

1、导包 socket
2、初始化一个 socket
3、调用 socket的一个方法发送消息数据
4、关闭 socket

'''

# 1、导包 socket
import socket

# 2、初始化一个 socket
# socket.AF_INET ip地址的类型
# socket.SOCK_DGRAM UDP协议
send_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 3、调用 socket的一个方法发送消息数据
send_socket.sendto("vivi正在直播".encode("gbk"), ("192.168.1.104", 8080))

# 4、关闭 socket
send_socket.close()

2.2 编写UDP程序接收socket数据

编码思路

代码语言:javascript
复制
1、导包 socket
2、初始化一个 socket
3、调用 socket的一个方法接收消息数据
4、关闭 socket
代码语言:javascript
复制
'''

1、导包 socket
2、初始化一个 socket
3、调用 socket的一个方法接收消息数据
4、关闭 socket

'''

# 1、导包 socket
import socket

# 2、初始化一个 socket
# socket.AF_INET ip地址v4版本
# socket.SOCK_DGRAM UDP协议
recv_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 绑定ip地址和端口号
# 这个方法需要接收的是一个元组
# 元组中第一个参数是ip地址,字符串类型
# 元组中第二个参数是端口号,整数类型的
# ip地址不写,表示可以接收到任意一台电脑上发送过来的数据
recv_socket.bind(("", 8080))

# 3、调用 socket的一个方法接收消息数据
# 1024是指接收的最大数据,单位是字节
recv_data = recv_socket.recvfrom(1024)
# print(recv_data)  # (b'\xb9\xa7\xcf\xb2\xc4\xfa\xb3\xc9\xb9\xa6\xb5\xf7\xd3\xc3 socket \xb5\xc4\xd2\xbb\xb8\xf6\xb7\xbd\xb7\xa8\xb7\xa2\xcb\xcd\xcf\xfb\xcf\xa2\xca\xfd\xbe\xdd\xa3\xa1',('192.168.1.104', 55910))
print(recv_data[0].decode("gbk"))

# 4、关闭 socket
recv_socket.close()

:先运行“UDP程序接收socket数据”代码,再运行“UDP程序发送socket数据”代码,效果图如下所示。

2.3 聊天器

编码思路:

代码语言:javascript
复制
1、导包 socket
2、初始化 socket
3、绑定端口号
4、显示菜单
5、判断用户输入的菜单编号
6、根据判断的结果调用对应的功能
代码语言:javascript
复制
# 1、导包 socket
import socket

# 定义函数,实现发送消息的功能
def send_msg(udp_socket):
    msg = input("请输入发送的消息:")
    ip = input("请输入对方的ip地址:")
    port = int(input("请输入对方的端口号:"))
    # 发送消息
    udp_socket.sendto(msg.encode("gbk"), (ip, port))

# 定义函数,实现接收消息的功能
def recv_msg(udp_socket):
    recv_msg = udp_socket.recvfrom(1024)  # 接收数据
    print("%s:%s" % (recv_msg[1], recv_msg[0].decode("gbk")))  # 显示数据

def main():

    # 2、初始化 socket
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 3、绑定端口号
    udp_socket.bind(("", 8081))

    # 4、显示菜单
    print("*" * 30)
    print("1、发送消息")
    print("2、接收消息")
    print("*" * 30)

    # 无限循环5/6步
    while (1):
        # 5、判断用户输入的菜单编号
        menu_code = input("请输入菜单编号:")
        if menu_code == "1":
            # 6、根据判断的结果调用对应的功能
            # 调用发送消息的功能
            send_msg(udp_socket)
        elif menu_code == "2":
            # 6、根据判断的结果调用对应的功能
            # 调用接收消息的功能
            recv_msg(udp_socket)
        else:
            # 6、根据判断的结果调用对应的功能
            print("录入有误,请重新输入")

if __name__ == '__main__':
    main()

欢迎留言,一起学习交流~

感谢阅读

END

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 项目准备
    • 1.1 了解你的本地主机地址
      • 1.2 辅助工具——网络调试助手
        • 1.3 环境配置
        • 2 编写代码
          • 2.1 编写UDP程序发送socket数据
            • 2.2 编写UDP程序接收socket数据
              • 2.3 聊天器
              • 欢迎留言,一起学习交流~
                • END
                相关产品与服务
                云直播
                云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档