python 网络编程篇
基础模拟通话网络程序:
1 #客户端 2 import socket 3 4 client = socket.socket() 5 client.connect(('localhost',6969)) 6 client.send(b"hello ni hao") #python3 中只能传输字节码 7 data = client.recv(1024) #1024指定接受的数据大小 将接受的数据赋值给data 8 print("recv:",data) 9 client.close()
1 import socket 2 3 #服务端 4 server = socket.socket() 5 server.bind(('localhost',6969)) #绑定要监听端口 6 server.listen() #监听 7 print("我要开始等电话了") 8 conn,addr = server.accept() #等电话打进来 accept 会返回两个值 conn,addr conn为连接产生的链接实例 客户端连过来而在服务器端为其生成的一个实例 addr对方链接的地址 9 print("电话来了") 10 data = conn.recv(1024) #接受1024字节,将接收的数据赋值给data 11 print("recv:",data) 12 conn.send(data.upper()) #将接收的数据进行转大写操作后返回给客户端 13 server.close()
简易c-s 聊天版本:
1 #客户端 2 import socket,time 3 4 client = socket.socket() 5 client.connect(('10.139.165.32',9502)) 6 print("来聊天啦") 7 8 while True: 9 message = input("你说:") 10 print(time.ctime()) 11 if len(message) == 0: #当输入为空时候,让用户重新输入 12 continue 13 client.send(message.encode("utf-8")) #python3 中只能传输字节码 ,如果是传输的中文则必须先encode utf-8 14 data = client.recv(1024) #1024指定接受的数据大小 将接受的数据赋值给data 15 print("服务器回应:",data.decode()) 16 print(time.ctime()) 17 client.close()
1 import socket,time 2 3 #服务端 4 server = socket.socket() 5 server.bind(('10.139.165.32',9502)) #绑定要监听端口 6 7 server.listen(5) #监听 此处的5表示默认最大挂起链接 (需要在异步时候才能有效果) 8 print("我要开始等电话了") 9 print(time.ctime()) 10 while True: 11 12 conn,addr = server.accept() #等电话打进来 accept 会返回两个值 conn,addr conn为连接产生的链接实例 客户端连过来而在服务器端为其生成的一个实例 addr对方链接的地址 13 print("电话来了") 14 print(time.ctime()) 15 while True: 16 data = conn.recv(1024) #接受1024字节,将接收的数据赋值给data 17 if not data: 18 print("客户端链接关闭。。。。") 19 print(time.ctime()) 20 break 21 22 print("client sey :",data.decode()) 23 print(time.ctime()) 24 message = input("你回复:") 25 print(time.ctime()) 26 conn.send(message.encode("utf-8")) 27 28 server.close()