pythontcp协议传递数据到mysql,Python使用socket_TCP实现小文件下载功能

服务器

import socket

# 1.创建套接字

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

# 2.绑定端口

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

# 3.变为被动监听模式

server.listen(4)

while True:

# 4.等待客户端链接

s_new, addr = server.accept()

print('用户【{}】已经成功连接!!'.format(addr[0]))

while True:

# 5.接受消息

try:

# 若客户端强行断开连接服务器不会崩溃

recv_data = s_new.recv(1024).decode('utf-8')

if recv_data:

print('来自【{}】的用户表示要下载: 【{}】'.format(addr[0], recv_data))

# 6.发送消息

try:

f = open(recv_data, 'rb')

content = f.read()

send_data = s_new.send(content)

f.close()

print('下载成功!')

except Exception as result:

send_data = s_new.send('Non'.encode('utf-8'))

print('未找到要下载的文件')

else:

print('用户已经正常退出!')

break

except Exception as res:

print('用户已经退出连接!')

break

s_new.close()

# 7,关闭套接字

server.close()

客户端

import socket

# 创建套接字

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

# 绑定IP地址

s.connect(('127.0.0.1', 7890))

while True:

# 发送数据

send_data = str(input('请输入想要下载的文件名:'))

if send_data == 'exit':

print('已退出下载!')

break

s.send(send_data.encode('utf-8'))

# 接收数据

recv_data = s.recv(2048)

if recv_data == 'Non'.encode('utf-8'):

print('未找到要下载的文件!')

else:

with open('【new】' + send_data, 'wb') as f:

f.write(recv_data)

print('[{}]下载成功!'.format(send_data))

f.close()

# 关闭套接字

s.close()

运行结果(服务器):

b8394968804b54831b7e13ea204acb4f.png

运行结果(客户端):

3029a1ab65c52dd15e0c05f53cf3e311.png

文件结果;

c9b6bcbe87971fac2c1d55963d22dd78.png

到此这篇关于Python使用socket_TCP实现小文件下载功能的文章就介绍到这了,更多相关Python小文件下载内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-10-06

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现数据通过网络传输 TCP 协议,并存入 MySQL 数据库,可以按照以下步骤进行: 1. 首先需要安装 MySQL Connector/Python,这是 MySQL 官方提供的 Python 驱动程序,可以通过 pip 安装: ``` pip install mysql-connector-python ``` 2. 在 Python 中编写代码,连接到 MySQL 数据库,并创建一个 TCP 服务器,监听来自客户端的连接请求: ```python import mysql.connector import socket # 连接到 MySQL 数据库 cnx = mysql.connector.connect(user='username', password='password', host='localhost', database='mydatabase') # 创建 TCP 服务器 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 8888)) server_socket.listen(1) # 等待客户端连接 print('Waiting for client connection ...') client_socket, addr = server_socket.accept() print('Connected from', addr) # 接收数据并存入数据库 while True: data = client_socket.recv(1024) if not data: break cursor = cnx.cursor() add_data = ("INSERT INTO mytable " "(data) " "VALUES (%s)") cursor.execute(add_data, (data,)) cnx.commit() # 关闭连接 client_socket.close() server_socket.close() cnx.close() ``` 在上面的代码中,我们首先连接到 MySQL 数据库,然后创建一个 TCP 服务器,监听来自客户端的连接请求。一旦客户端连接成功,我们就可以接收来自客户端的数据,并将其存入数据库中。 在存储数据时,我们使用了参数化查询,这是为了防止 SQL 注入攻击。我们还使用了事务,确保数据被成功存储到数据库中。 3. 编写客户端代码,向服务器发送数据: ```python import socket # 创建 TCP 客户端 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(('localhost', 8888)) # 发送数据 data = b'Hello, world!' client_socket.sendall(data) # 关闭连接 client_socket.close() ``` 在上面的代码中,我们创建一个 TCP 客户端,并连接到服务器。然后,我们发送一些数据给服务器。最后,我们关闭连接。 在实际应用中,您可以根据需要编写更复杂的客户端代码,以便发送各种类型的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值