socket客户端和服务端,文件的传输

简介: socket 实现,客户端和服务端,文件的传输

我们需要了解Python中的socket库,socket库提供了一种在计算机之间进行通信的方法。在这篇文章中,我们将介绍如何使用Python的socket库实现客户端和服务端之间的文件传输和图片传输。

服务端

服务端主要负责监听客户端的连接请求,接收客户端发送的文件或图片,并将接收到的文件或图片保存到本地。

  1. 导入所需的库:

import socket
import os
import time
CopyCopy

  1. 创建一个TCP套接字并绑定到指定端口:

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
CopyCopy

  1. 监听客户端的连接请求:

server_socket.listen(5)
CopyCopy

  1. 等待客户端连接:

client_socket, client_address = server_socket.accept()
print(f'客户端 {client_address} 已连接')
CopyCopy

  1. 接收客户端发送的文件或图片:

while True:
data = client_socket.recv(1024)
if not data:
break
with open('received_data.jpg', 'wb') as f:
f.write(data)
print(f'已接收 {os.path.getsize('received_data.jpg')} 字节的数据')
CopyCopy

  1. 关闭套接字并退出循环:

client_socket.close()
server_socket.close()
CopyCopy

客户端

客户端主要负责连接服务端,发送文件或图片,并接收服务端返回的确认信息。

  1. 导入所需的库:

import socket
import os
import time
CopyCopy

  1. 创建一个TCP套接字并连接到服务端:

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 12345))
CopyCopy

  1. 发送文件或图片:

with open('image.jpg', 'rb') as f:
data = f.read()
client_socket.sendall(data)
print(f'已发送 {os.path.getsize('image.jpg')} 字节的数据')
CopyCopy

  1. 等待服务端确认:

data = client_socket.recv(1024)
print(f'接收到服务端消息: {data}')
CopyCopy

  1. 关闭套接字并退出循环:

client_socket.close()
CopyCopy

这样,客户端和服务端就可以实现文件的传输和图片的传输了。请注意,在实际应用中,您可能需要对代码进行一些修改,例如使用更安全的传输方式,处理传输错误等。

目录
相关文章
|
4月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
217 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
4月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
243 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
4月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
53 0
|
6月前
|
网络协议 C# 开发者
WPF与Socket编程的完美邂逅:打造流畅网络通信体验——从客户端到服务器端,手把手教你实现基于Socket的实时数据交换
【8月更文挑战第31天】网络通信在现代应用中至关重要,Socket编程作为其实现基础,即便在主要用于桌面应用的Windows Presentation Foundation(WPF)中也发挥着重要作用。本文通过最佳实践,详细介绍如何在WPF应用中利用Socket实现网络通信,包括创建WPF项目、设计用户界面、实现Socket通信逻辑及搭建简单服务器端的全过程。具体步骤涵盖从UI设计到前后端交互的各个环节,并附有详尽示例代码,助力WPF开发者掌握这一关键技术,拓展应用程序的功能与实用性。
213 0
|
7月前
|
Java 数据格式
Java面试题:简述Java Socket编程的基本流程,包括客户端和服务器的创建与通信。
Java面试题:简述Java Socket编程的基本流程,包括客户端和服务器的创建与通信。
122 0
|
8月前
|
存储 监控 Java
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
|
8月前
|
Java
java使用ServerSocket和Socket实现客户端与服务端通讯
java使用ServerSocket和Socket实现客户端与服务端通讯
|
8月前
|
网络协议
逆向学习网络篇:通过Socket建立连接并传输数据
逆向学习网络篇:通过Socket建立连接并传输数据
83 0
|
4月前
|
网络协议 测试技术 网络安全
Python编程-Socket网络编程
Python编程-Socket网络编程
45 0
|
7月前
|
网络协议 开发者 Python
深度探索Python Socket编程:从理论到实践,进阶篇带你领略网络编程的魅力!
【7月更文挑战第25天】在网络编程中, Python Socket编程因灵活性强而广受青睐。本文采用问答形式深入探讨其进阶技巧。**问题一**: Socket编程基于TCP/IP,通过创建Socket对象实现通信,支持客户端和服务器间的数据交换。**问题二**: 提升并发处理能力的方法包括多线程(适用于I/O密集型任务)、多进程(绕过GIL限制)和异步IO(asyncio)。**问题三**: 提供了一个使用asyncio库实现的异步Socket服务器示例,展示如何接收及响应客户端消息。通过这些内容,希望能激发读者对网络编程的兴趣并引导进一步探索。
87 4