python cs架构实现简单文件传输 代码解析_python cs架构实现简单文件传输

本文介绍了使用Python实现客户端/服务器(C/S)架构进行简单文件传输的方法,包括TCP连接的建立、文件的上传和下载过程。服务端通过socket监听,接收客户端连接请求,根据客户端指令进行文件操作。客户端则通过socket连接服务端,发送文件操作命令并接收文件。通过TCP三次握手建立连接,四次挥手断开连接,确保文件传输的可靠性。
摘要由CSDN通过智能技术生成

本文为大家分享了python cs架构实现简单文件的传输代码,供大家参考,具体内容如下

要实现简单文件的传输我们必须考虑这些问题:

1.什么是c/s架构?

顾名思义,就是客户端端/服务器架构。不同的人可能回答不一,但是有一点是相同的:服务器是一个软件或硬件,用于向一个或多个客户端提供所需要的服务,服务器存在的唯一目的就是等待客户的请求,给这些客户服务,然后等待其他的请求。

2.客户端与服务端如何通信?

其实说白了就是互联网中两个主机该如何通信,首先我们用ip地址可以标示一台主机,这样就可以通信了么?当然也不行,我们还得标示主机中的进程,当然协议也是不可或缺的,是udp报文协议还是tcp数据流协议,这的看你个人的需求。用套介子来作为一个标示符,唯一标识网络进程。

想明白这两个问题我觉得这个问题有三分之一已经解决了,接下来呢我选择tcp协议来传输。

服务端:

采用socket()函数 定义socket描述字

bind()函数来把地址族中一个特定地址赋给socket,简单来说就是把一个ipv4/ipv6地址+端口号组合赋给socket

listen()函数把socket变成被动类型的,等待客户连接请求。

当客户端发来消息时用accept()函数来接受请求,同时给服务端返回客户端的socket描述字,接下来服务端以接收到的描述字来向客户端发送信息以及接受信息。

我们这个程序是实现文件传输,我的想法是类似于ftp程序接受客户上传下载文件的需求。服务端启动后监听端口(我用的9500)等待客户连接。客户端三次握手建立连接后,客户输入命令来向客户端发起请求,输入‘ls'命令可以查看服务端可下载的文件,输入‘put   文件名',‘get  文件名'可以上传下载文件。上传文件时客户端打开本地文件以二进制方式读取文件内容并同时调用send()函数发送文件内容,服务端以写方式打开文件并将客户端上传内容写入文件,实现文件的上传。下载文件与此类似,客户端上传送‘get  文件名'命令同时以写方式打开文件 ,服务端收到命令以读方式打开文件,并发送给服务端。

tcp三次握手建立连接:

201907150027219206.png

当客户端调用connect时,触发了连接请求,向服务器发送了SYN J包,这时connect进入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值