requests库
使用python 下载图片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 from threading import Threadimport requestsclass Download (Thread ): def __init__ (self, url ): super ().__init__() self.__url = url def run (self ): fileName = self.__url[self.__url.rfind('/' )+1 :] resp = requests.get(self.__url) with open (fileName, "wb" ) as f: f.write(resp.content)def main (): Download(r"https://allinit-1317182407.cos.ap-nanjing.myqcloud.com/others/y/%E5%A3%81%E7%BA%B8.png" ).start() main()
TCP套接字 套接字的分类
TCP套接字(流套接字)
数据报套接字
原始套接字
TCP套接字
端口
1024一下的是著名服务端口
多并发通信 server.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 from http import serverfrom socket import socket,SOCK_STREAM,AF_INETfrom datetime import datetimeimport socketserverfrom threading import Threadimport timefrom numpy import addclass Server (): def __init__ (self ): self.server=socket(family=AF_INET,type =SOCK_STREAM) self.server.bind(('192.168.211.195' ,35555 )) self.server.listen(512 ) print ("begin....." ) def server_connet (self ): num=0 while True : client,addr=self.server.accept() num+=1 print (f"现在有{num} 个client" ) Thread(target=self.client_session,args=(client,addr)) def client_session (self,client: socket,addr ): print (f"{addr} 连接到服务器" ) recv_message=client.recv(1024 ).decode('utf-8' ) print (f"client{client} time :{datetime.now()} 发来一条信息:{recv_message} " )def main (): server=Server() server.server_connet()if __name__=="__main__" : main()
client.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 from socket import socket,SOCK_STREAM,AF_INETfrom time import sleepdef client (): client=socket() client.connect(("192.168.211.195" ,35555 )) send_message=f"august nihao!" .encode('utf-8' ) client.send(send_message) client.close()for i in range (0 ,50 ): client() sleep(1 )
UDP 套接字 UDP无需建立连接就可以发送信息
并且直需要在开启socket的时候使用不同的网络流就可以了
udp是SOCK_DGRAM
然后发送数据使用sendto()
接收信息使用recvfrom()
client