python 网络编程socket
一.架构
C/S 客户端(Client)/服务端(Server)
1.硬件C/S架构
例如:打印机
2.软件C/S架构
例如:QQ、微信、优酷、暴风影音
B/S 浏览器(Browser)/服务端(Server)
很多网站是基于浏览器来进行访问的,浏览器和各个网站服务端进行的通讯方式
二.python socket模块
服务端:
1 import socket 2 3 server = socket.socket() 4 5 ip_port = ('IP', 端口) 6 7 server.bind(ip_port) 8 9 server.listen() 10 11 conn, addr = server.accept() 12 13 while 1: 14 15 from_client_msg = conn.recv(1024) 16 if from_client_msg.decode('utf-8').upper() =='Q': 17 print('通话结束') 18 break 19 else: 20 print('>>>>接受消息', from_client_msg.decode('utf-8')) 21 to_client_msg = input('回复消息:') 22 23 conn.send(to_client_msg.encode('utf-8')) 24 25 26 conn.close() 27 28 server.close()
客户端:
1 import socket 2 3 client = socket.socket() 4 5 server_ip_port = ('IP', 端口) 6 7 client.connect(server_ip_port) 8 while 1: 9 10 11 to_server_msg = input('发送消息(输入Q通话结束):') 12 if to_server_msg.upper() =='Q': 13 client.send(to_server_msg.encode('utf-8')) 14 print('通话结束') 15 break 16 else: 17 client.send(to_server_msg.encode('utf-8')) 18 19 from_server_msg = client.recv(1024) 20 21 print('信息是:',from_server_msg.decode('utf-8')) 22 client.close()