Python实现C/S架构网络通信示例
本文介绍基于Python的C/S(客户端/服务器)模式网络通信实现。通过Socket模块创建TCP连接,服务器端监听端口并启用多线程处理多客户端请求,客户端发起连接并交互发送数据。代码展示了完整的握手、消息收发及断开流程,适用于理解基础网络编程概念。
C/S模式概述
C/S模式即客户端与服务器架构,是软件系统中常见的协同工作模式。
尽管Web浏览器的普及使B/S模式逐渐占据主流,但随着计算机网络技术的成熟及局域网的广泛发展,特别是个人计算机(PC)的普及,越来越多的用户和企业倾向于利用计算机管理各类事务。
虽然单台PC的资源不及大型或中型主机丰富,但通过组建网络,多台PC可以共享资源,显著提升整体资源利用率。基于C/S体系结构概念,系统至少需要两台计算机,分别承担客户机和服务器的角色。
Python C/S代码实现
以下是服务器端的实现代码:
#!/usr/bin/python
import time, socket, threading
# thread handle function
def tcplink(sock, addr):
print 'Accept new connection from %s:%s...' % addr
sock.send('Welcome!')
while True:
data = sock.recv(1024)
time.sleep(1)
if data == 'exit' or not data:
break
sock.send('Hello, %s!' % data)
sock.close()
print 'Connection from %s:%s closed.' % addr
# create socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# listen port
s.bind(('127.0.0.1', 9999))
# start listen
s.listen(5)
# print prompt
print 'Waiting for connection...'
while True:
# accept a new connection
sock, addr = s.accept()
# create new thread to handle tcp connection
t = threading.Thread(target=tcplink, args=(sock, addr))
t.start()
客户端代码示例如下:
#!/usr/bin/python
# import module
import socket
# create TCP object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect sina
s.connect(('127.0.0.1', 9999))
# receive welcome
print s.recv(1024)
for data in ['zjw', 'ygl', 'lele']:
# send data
s.send(data)
print s.recv(1024)
while True:
data = 1
设计逻辑保持一致:服务器端监听固定端口以等待连接,客户端发起连接请求,随后双方进行消息交互。
以上内容为本文的全部介绍,希望对读者学习有所帮助,欢迎继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









