python简单人机对话_python怎么学

python简单人机对话_python怎么学在 Python 中实现聊天程序 你可以使用 socket 模块来创建客户端和服务器端的通信 以下是一个简单的聊天程序示例 使用 socket 模块实现全双工通信 并添加了图形用户界面 GUI 来提升用户体验 服务器端代码 pythonimport socketimport threading def handle client client socket addr

在Python中实现聊天程序,你可以使用`socket`模块来创建客户端和服务器端的通信。以下是一个简单的聊天程序示例,使用`socket`模块实现全双工通信,并添加了图形用户界面(GUI)来提升用户体验。

服务器端代码

python

import socket

import threading

def handle_client(client_socket, addr):

print(f"连接地址: {addr}")

while True:

try:

message = client_socket.recv(1024).decode('utf-8')

if message == 'bye' or message == '拜拜':

break

print(f"服务器收到消息: {message}")

client_socket.send(message.encode('utf-8'))

except:

break

client_socket.close()

def main():

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server.bind(('127.0.0.1', 5650))

server.listen(5)

print("服务器已启动")

while True:

client_socket, addr = server.accept()

print(f"已连接到 {addr}")

client_handler = threading.Thread(target=handle_client, args=(client_socket, addr))

client_handler.start()

if __name__ == "__main__":

main()

客户端代码

python

import socket

import threading

import tkinter as tk

from tkinter import messagebox

def receive_messages(client_socket):

while True:

try:

message = client_socket.recv(1024).decode('utf-8')

if message == 'bye' or message == '拜拜':

break

messagebox.showinfo("聊天消息", message)

except:

break

def main():

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect(('127.0.0.1', 5650))

receive_thread = threading.Thread(target=receive_messages, args=(client,))

receive_thread.start()

while True:

message = input("客户端: ")

if message == 'bye' or message == '拜拜':

break

client.send(message.encode('utf-8'))

if message == 'exit':

break

client.close()

if __name__ == "__main__":

main()

运行步骤

1. 首先运行服务器端代码,启动聊天服务器。

2. 然后运行客户端代码,启动聊天客户端。

3. 在客户端窗口中输入消息并发送,服务器端和客户端将交替显示接收到的消息。

4. 若要退出聊天,客户端输入“exit”,服务器端输入“拜拜”或“bye”。

这个示例代码展示了如何使用Python的`socket`模块创建一个简单的聊天程序,并通过多线程实现全双工通信。你可以在此基础上添加更多功能,如用户认证、私聊、群聊等。

编程小号
上一篇 2026-03-17 21:10
下一篇 2026-03-17 21:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/72206.html