一、网络通信
''' 网络通信三要素: 1.协议--说话方式 2.端口号--对方拿什么接收数据 3.IP地址--计算机在网络上的位置 ''' import socket #获取主机名字 a=socket.gethostname() print(a) #通过主机名获取ip地址 print(socket.gethostbyname(a))
二、UDP
1.客户端
''' client:客户端的 TCP协议传输 1.创建socket对象 2.建立连接(指定ip地址和端口号) 3.发送数据 ''' import socket # 创建socket对象(指定ip地址方式(4,6),传输协议(TCP) # AF_INET--4 SOCK_STEAM--tcp s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 建立连接 ip地址和端口号需要放在元祖中 s.connect(('192.168.58.62',8000)) # 发送数据 encode编码--str--byte while True: data=input('客户端发给服务端的话') if data=='拜拜': break s.send(data.encode()) data1=s.recv(1024) if data1.decode()=='拜拜': break print('服务器说',data1.decode()) s.close()
2.服务端
''' server:服务端 ''' import socket # 1.创建socket对象 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 2.绑定ip地址和端口号 s.bind(('192.168.58.62',8000)) # 3.监听 括号内的数字表示能接收几个客户端 s.listen(5) # 4.同意连接 第一个值保存的是接入过来的客户端对象 # 第二个值保存的是地址的各种信息 client,add=s.accept() # 接收数据 while True: data=client.recv(1024) print('客户端说',data.decode()) data1=input('服务端给客户端发信息:') client.send(data1.encode()) if data1=='拜拜' or data.decode()=='拜拜': break s.close() client.close()
三、UDP
1.客户端
import socket #1.创建socket对象 SOCK_DGRAM s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #2.发送数据 while True: data=input('向服务器发送:') s.sendto(data.encode(),('192.168.58.62',9100)) 2.服务端
import socket #创建socket对象 s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #2.绑定ip和端口 s.bind(('192.168.58.62',9100)) while True: # 3.收数据 data = s.recv(1024) print('来着客户端',data.decode())
四、冒泡排序
list1=[90,2,1,5,1,100,100,3] n=len(list1)-1 for i in range(n): for j in range(n-i): if list1[j]>list1[j+1]: list1[j],list1[j+1]=list1[j+1],list1[j] print(list1)