首页 > 代码库 > python-TCP模拟ftp文件传输

python-TCP模拟ftp文件传输

 1  #!/usr/bin/python
 2 #coding=utf-8
 3 #server
 4 from socket import*
 5 import sys,os
 6 def command():
 7     l=[ "Welcome!\n","command\n", "list\n","upload\n","download\n"]
 8     return l
 9 def list():
10     l=[]
11     for filename in os.listdir(.):
12         l.append(filename)
13     return l
14 HOST="192.168.1.33"
15 PORT=5126
16 ADDR=(HOST,PORT)
17 sockob=socket(AF_INET,SOCK_STREAM)
18 sockob.bind(ADDR)
19 sockob.listen(5)
20 
21 a=[]
22 while 1:
23     sock,addr=sockob.accept()
24 
25     while 1:
26         data=http://www.mamicode.com/sock.recv(1024) 
27         str=data.split(" ")
28 
29         if data =http://www.mamicode.com/="command":
30             a=command()
31             for i in a:
32                 sock.send(i)
33         elif data =http://www.mamicode.com/="list":
34             a=list()
35             for i in a:
36                 sock.send(i)
37         elif str[0]=="upload":
38             f=open(str[1],w)
39             s=sock.recv(1024)
40             print s
41             for i in s: #range(len(str)):
42                 f.write(i)
43             print "upload is ok!"
44         elif str[0]=="download":
45             f=open(str[1],r)
46             s=f.readlines()
47             for i in s:
48                 sock.send(i)
49             print "download is ok!"
50 sockob.close()
51 sock.close()
 1 #!/usr/bin/python
 2 #coding=utf-8
 3 #client
 4 from socket import *
 5 import sys
 6 
 7 HOST=192.168.1.33
 8 PORT=5126
 9 ADDR=(HOST,PORT)
10 sockob=socket(AF_INET,SOCK_STREAM)
11 sockob.connect(ADDR)
12 
13 while 1:
14     data=http://www.mamicode.com/raw_input(">",)
15     str=data.split( )
16     if not str:
17         break
18     elif str[0]=="upload":
19         f=open(str[1],r)
20         sockob.send(data)
21         s0=f.readlines()
22         print s0
23         for i in s0:
24             sockob.send(i)
25     elif str[0]=="download":
26         f=open(str[1],w)
27         sockob.send(data)
28         s1=sockob.recv(1024)
29         f.write(s1)
30     elif data=http://www.mamicode.com/="command" or data=http://www.mamicode.com/="list":
31         sockob.send(data)
32         data=http://www.mamicode.com/sockob.recv(1024)
33         print data
34 
35 
36 sockob.close()

 

python-TCP模拟ftp文件传输