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

"""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...

相关推荐
马猴烧酒.1 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
天天爱吃肉82182 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车
m0_715575342 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
甄心爱学习2 小时前
【leetcode】判断平衡二叉树
python·算法·leetcode
北京迅为2 小时前
《【北京迅为】itop-3568开发板NPU使用手册》- 第 7章 使用RKNN-Toolkit-lite2
linux·人工智能·嵌入式·npu
深蓝电商API2 小时前
滑块验证码破解思路与常见绕过方法
爬虫·python
Ulyanov2 小时前
Pymunk物理引擎深度解析:从入门到实战的2D物理模拟全攻略
python·游戏开发·pygame·物理引擎·pymunk
Dragon~Snow2 小时前
Linux Centos9 安装 Elasticsearch
linux·elasticsearch·jenkins
熊延2 小时前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索
sensen_kiss2 小时前
INT303 Coursework1 爬取影视网站数据(如何爬虫网站数据)
爬虫·python·学习