python 之网络编程汇总

China☆狼群 提交于 2021-02-01 11:33:53
   网络编程,即不同网络中电脑之间的数据通信。网络编程主要有两种方式UDP数据报协议和TCP数据流协议。UDP协议是一种无连接的数据传输协议,特点就是:速度快,无需连接,
可以进行广播消息。TCP是一种较安全的面向连接的传输协议,其需要通信双方建立连接(三次握手过程),关闭时四次挥手的通信方式,在网络传输中应用较方便,其数据较安全,因
数据进行检验和超时重传,不会发生数据丢失,或者数据错乱现。
1.IPV4,IPV6,TCP,UDP,HTTP,FTP等概念的涵义     ip协议属于网络层的协议,   IPV4 :互联网协议第4版,IPV6是v4的下一代,其ip长度128位。   tcp/udp是传输层的协议,   http是应用层的协议   FTP是文件传输协议,基于tcp。 2.使用tcp创建文件传输的服务器和客户机程序: 服务器程序: #思路:客户端建立连接后,输入文件名,服务器进行传输,传输完毕后,关闭连接 #难点:采用多线程方法建立多任务,对每一连接建立传输线程。
import socket,os,threading def sendfile(new_ss): while 1: data=new_ss.recv(1024) if os.path.exists(data.decode()): with open(data.decode(), "r", encoding="utf-8") as file: for line in file.readlines(): data1 = new_ss.send(line.encode()) print(" the task is finished ") else: new_ss.send("False,the file is not existed".encode()) print(" the server is over") new_ss.close()#接收完毕,关闭服务 break if __name__ == '__main__': ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ss.bind(("",8080)) ss.listen(128) while 1: new_ss,ip_port=ss.accept() print("receive a task from ",ip_port) threading.Thread(target=sendfile, args=(new_ss,)).start() print(threading.enumerate()) 客户端程序: import socket ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM) ss.connect(("127.0.0.1",8080))#服务器的地址 file_name=input("please input the file name:") ss.send(file_name.encode()) #with open("/home/python/Desktop/"+file_name,"w",encoding="utf-8") as file: with open("2" + file_name, "w", encoding="utf-8") as file: while 1: data=ss.recv(1024) if data: if data.decode()=="False,the file is not existed": data1=data.decode() print(data1) break else: file.write(data.decode()) else: print("the file has been accepted") break ss.close()

 

队列,网络队列,管道,socket总结,同步,异步,并行,并发
同步:按照顺序逐个运行异步:同时进行,没有执行顺序并发:任务数大于内核数,只能轮流执行并行:任务数小于内核数,可行同时运行任务

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!