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