Python socket通信之FTP
Python中利用socket进行server端和client端通信是网络编程的基础,是最简单的传输范例。
(懂网络的请自动跳过这一部分)
首先,要想通信,必须建立连接,建立连接的过程,需要client端首先发送请求,server端回应,“我收到了”,client端回应,“收到”,这就是通常所说的三次握手,
要保证可以相互通信就需要保证相同的地址、端口,这样大家就在一个频道上说话了,
不说了,上代码......
import socket
server = socket.socket()
server.bind(('127.0.0.1', 6700))
server.listen(5) while True:
conn, addr = server.accept()
print(conn, addr) while True:
data = conn.recv(1024)
data = data.decode("utf-8")
print(data)
if not data:
print('lost')
break
conn.send('successful'.encode('utf-8')) server.close()
这是server端的代码,简单的说就是对外说明,server端是谁,监听哪个端口,监听几个client,等待client连接,以什么方式通信(这里主要是指编码问题),
import socket
client = socket.socket()
client.connect(('127.0.0.1', 6700)) while True:
msg = input(">>")
if len(msg) == 0: continue
client.send(msg.encode('utf-8'))
data = client.recv(1024)
print(data) client.close()
这是client端的代码,也是一目了然,准备跟哪个server连接,用什么端口连接,准备传输什么信息,用什么方式编码,
简单地讲,有了这些信息就可以完成FTP连接,进行FTP传输
Python socket通信之FTP的更多相关文章
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- python - socket通信笔记
参考: 通过编写聊天程序来熟悉python中多线程和socket的用法:https://www.cnblogs.com/mingjiatang/p/4905395.html python socket ...
- Python socket 通信功能简介
常用的地址家族AF_UNIX:基于文件,实现同一主机不同进程之间的通信AF_INET:基于网络,适用于IPv4AF_INET6:基于网络,使用于IPv6 常见的连接类型SOCK_STREAM:即TCP ...
- Python Socket通信黏包问题分析及解决方法
参考:http://www.cnblogs.com/Eva-J/articles/8244551.html#_label5 1.黏包的表现(以客户端远程操作服务端命令为例) 注:只有在TCP协议通信的 ...
- Python Socket通信例子
一.TCP 通信 服务端 #!/usr/bin/env python # -*- coding: utf-8 -*- # server_tcp.py import socket so = socket ...
- 使用 Socket 通信实现 FTP 客户端程序(来自IBM)
FTP 客户端如 FlashFXP,File Zilla 被广泛应用,原理上都是用底层的 Socket 来实现.FTP 客户端与服务器端进行数据交换必须建立两个套接字,一个作为命令通道,一个作为数据通 ...
- 树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)
本文由树莓派爱好者ITJoker 编辑,转载请注明出处.本人也有新浪博客同样是树莓派爱好者ITJoker 所需材料:树莓派2B或者2B以上,L2985n驱动板,若干排线,电池及电池盒,usb无线网卡( ...
- Python Socket 通信
参考: http://www.cnblogs.com/alex3714/articles/5830365.html Socket A network socket is an endpoint of ...
- 程序媛计划——python socket通信
定义 socket 是进程间的一种通信方式,可以实现不同主机间的数据传输 #写服务期端程序server.py #实现服务器向客户端连接 #!/usr/bin/env python #coding:ut ...
随机推荐
- GNU/Linux分支图
- solrj 操作 solr 单机版
一.导入 jar 包 <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr- ...
- Xshell 访问虚拟机中linux
.关闭linux防火墙 service iptables stop chkconfig iptables off .启动ssh服务 service sshd start
- 定时器SDK
定时器是一切SDK的根本,欲写SDK必先确定定时器,定时器效率的高低决定着SDK函数的效率,下面是我个人写的Linux C++服务器端进程SDK中的定时器,部分参照了ACE和RocketMQ定时器的思 ...
- How to improve Java's I/O performance( 提升 java i/o 性能)
原文:http://www.javaworld.com/article/2077523/build-ci-sdlc/java-tip-26--how-to-improve-java-s-i-o-per ...
- 具体验证身份证号码规则和姓名(汉字)的java代码
一.验证汉字的正則表達式 /** 是否是汉字的正则 */ private String regexIsHanZi = "[\\u4e00-\\u9fa5]+"; * @pa ...
- Word技巧杂记(一)——去掉页眉上方的黑线
今天在调整文章的格式时,突然发现在页眉的上方有一条巨粗无比的黑线,不知从何处冒出来的(如下图) 经过长时间的研究,终于发现原来这是页面的边框.解决办法也很简单: 格式->边框与底纹->页面 ...
- 利用CSS3中的clac()实现按照屏幕分辨率自适应宽度
1.简介 calc()看其外表像个函数.平时在制作页面的时候,总会碰到有的元素是100%的宽度(例如body元素).如果元素宽度为100%时,其自身不带其他盒模型属性设置还好,要是有别的,那将导致盒子 ...
- UINavi中push控制器的时候隐藏TabBar
当一个UITabbarController管理多个UINavigationController的时候,我们又从这每一个UINavigationController中push一个ViewControll ...
- BZOJ 2957 分块
思路: 记录每栋楼楼顶与原点连线的斜率 那么一栋楼可见当且仅当前面所有楼的斜率都小于这栋楼 将n栋楼分为√(0.5*n*logn)块 每一块内维护一个单调上升子序列(注意不是LCS) 比如说4 1 2 ...