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

2021-02-02 14:28:53 浏览数 (1)

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

目录

1 项目准备

1.1 了解你的本地主机地址

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

1.3 环境配置

2 编写代码

2.1 编写UDP程序发送socket数据

2.2 编写UDP程序接收socket数据

2.3 聊天器


1 项目准备

1.1 了解你的本地主机地址

输入

,在终端输入

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

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'xb9xa7xcfxb2xc4xfaxb3xc9xb9xa6xb5xf7xd3xc3 socket xb5xc4xd2xbbxb8xf6xb7xbdxb7xa8xb7xa2xcbxcdxcfxfbxcfxa2xcaxfdxbexddxa3xa1',('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

0 人点赞