网络服务器和客户端的编写

编程入门 行业动态 更新时间:2024-10-28 15:25:39

网络服务器和<a href=https://www.elefans.com/category/jswz/34/1771403.html style=客户端的编写"/>

网络服务器和客户端的编写

"""1、创建TCP服务器"""
import socket   # 用于网络通信
import threading  # 创建多线程处理客户端请求
import time  # 用于添加数据时用于延迟,模拟网路传输
# 建立TCP连接
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定地址及监听端口
s.bind(('127.0.0.1',6666))  # 将服务器IP地址和端口号绑定到socket对象上,这里使用'127.0.0.1'是本地主机地址,即IP地址的最后一个部分为'1'
# 调用listen方法监听端口,参数5表示最大连接数,即“队列”大小
s.listen(5)
# 打印等待连接的信息
print('Wait for connection...')
# 服务器端应答函数
def tep(sock,addr):
    print('Accept new connection from %s:%s...'% addr)
    # 向客户端发送应答消息“Success!”(这里应答消息是硬编码的,实际应用中可能需要根据实际情况发送不同的应答)
    sock.send(b'Success!')
    # 进入一个无限循环,处理来自客户端的消息
    while True:
        # 从客户端接收最多1024字节的消息
        data = sock.recv(1024)
        # 接收数据后,延迟1秒 (实际时间取决于操作系统的时间粒度)
        time.sleep(1)
        # 如果没有接收到数据,或者接收到的数据解码后为“exit”,则跳出循环
        if not data or data.decode('utf-8') == 'exit':
             break
        # 向客户端发送消息“Welcom! {数据内容}!”并编码为utf-8格式(实际应用中可能需要根据实际情况发送不同的消息)
        sock.send(('Welcom! %s!' % data.decode('utf-8')).encode('utf-8'))
        # 关闭与客户端的连接
        sock.close()
    # 打印连接关闭的信息
    print('Connection from %s:%s closed.' % addr)
# 循环处理客户端连接
while True:
    # 接受来自客户端的新连接:
    sock,addr = s.accept()
    # 创建新线程来处理TCP连接
    t = threading.Thread(target=tep,args=(sock,addr))
    t.start()
""" 2、实现客户端"""
# 导入socket库
import socket
# 建立TCP连接
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 与服务器建立连接
print(s.connect('127.0.0.1',6666))
# 接受服务器的连接成功提示信息
print(s.recv(1024).decode('utf-8'))
# 发送数据并接受服务器返回结果
for data in [b'Tom',b'Jerry',b'Spike']:
    s.send(data)
    print(s.recv(1024).decode('utf-8'))
# 发送退出信息断开连接
s.send(b'exit')
s.close()

Wait for connection... 

更多推荐

网络服务器和客户端的编写

本文发布于:2023-12-06 14:25:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1667858.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:客户端   服务器   网络

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!