python下的TCP传输(分别做服务器与客户端)
2018-11-20 20:07
141 查看
使用TCP进行文件传输
TCP作为客户端时:
代码如下
[code] 1 import socket 2 3 def main(): 4 #1.创建套接字 5 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 6 7 #2.绑定服务器的ip,port 8 server_ip = input("请输入服务器的ip") 9 server_port = int(input("请输入服务器的port")) 10 11 #3.链接服务器 12 tcp_socket.connect((server_ip,server_port)) 13 14 #4.输入需要下载的文件名 15 file_name = input("请输入要下载的文件名称") 16 17 #5.将需要下载的文件名给服务器 18 tcp_socket.send(file_name.encode("utf-8")) 19 20 #6.接收下载的数据 21 down_data = tcp_socket.recv(1024) 22 23 #7.接收到的数据保存到文件中(文件的操作) 24 with open("[附件]"+file_name,"wb") as f: 25 f.write(down_data) 26 27 #8.关闭套接字 28 tcp_socket.close() 29 30 31 32 33 if __name__ == "__main__": 34 main()
对代码进行测试时需要下载网络调试助手
结果如下:
1.先连接服务器,服务器的ip和端口即为测试所用网络地址的ip与端口,继而输入要进行下载的文件的名称
2.网络助手显示客户端所要下载的文件名称,并传递回客户端数据
3.在1中可看到生成了11文件,2中显示发送的信息为aa,打开11进行验证
传输完成
TCP分别作为服务器,与客户端时,两者进行文件的下载
服务器代码如下
[code] 1 import socket 2 3 def send_data(new_client,client_addr): 4 5 #1.接收客户端要下载的文件名 6 down_file_name = new_client.recv(1024).decode("utf-8") 7 print("客户端%s要下载的文件名为%s"%str(client_addr,down_file_name)) 8 9 #2.用文件名进行查找返回信息给客户端(读操作) 10 11 f_read_data = None 12 try: 13 f = open(down_file_name,"rb") 14 f_read_data = f.read() 15 f.close() 16 17 except Exception as result: 18 print("没有文件%s"%down_file_name) 19 20 #发送文件的数据给客户端 21 if f_read_data: 22 new_client.send(f_read_data) 23 24 25 def main(): 26 27 #1.创建套接字 28 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 29 30 #2.绑定ip,port(tcp为面向链接),绑定本地时可不用写ip 31 tcp_socket.bind(("",7788)) 32 33 #3.监听listen 34 tcp_socket.listen(128) 35 36 while True: 37 38 #4.接收accept 39 new_client,client_addr = tcp_socket.accept() 40 41 #5.下载文件 42 send_data(new_client,client_addr) 43 44 #6.关闭 45 new_client.close() 46 47 tcp_socket.close() 48 49 50 51 if __name__ == "__main__": 52 53 main()
客户端代码同代码1
测试结果
1.tcp作为客户端连接服务器,并输入要下载的文件名
2,tcp作为服务器返回信息,客户端所要下载文件分为存在或不存在
相关文章推荐
- Python TCP服务器、客户端程序
- (TCP模式)客户端与服务器之间的文件传输
- 使用python中的socket实现服务器和客户端,并完成图片的传输。
- TCP代理的python实现(包括客户端/服务器/TCP代理三部分代码)
- 传输层TCP协议——TCP服务器/客户端
- python socket之tcp服务器与客户端demo
- 客户端与服务器进行数据传输时的TCP窗口与拥塞处理
- python TCP/IP 服务器/客户端
- 客户端与服务器之间分别通过TCP和UDP进行通信
- Python实现的简单文件传输服务器和客户端
- python socket之tcp服务器与客户端demo
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
- Python——简单的TCP & UDP 服务器 和 相应的客户端编程
- TCP传输(二):服务器给客户端一个反馈案例
- python3+PyQt5 创建网络应用-TCP客户端和TCP服务器
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
- python 创建TCP服务器、客户端程序
- Python socket网络编程TCP/IP服务器与客户端通信
- Python网络编程 3.2 可能出现死锁的tcp服务器、客户端