Linux ·

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传输

参与评论