一、架构
此处说的架构是C/S架构,就是客户端/服务端,拿手机来说,QQ,微信等都是客户端,而为这些客户端提供数据的就是服务端。PC端也有这种模式,就是电脑安装的QQ,微信等。由C/S还衍生出来一个B/S,就是浏览器/服务端。
这个B/S的作用就是在浏览器中,可以任意访问网站,不用再去安装很多的客户端。在一些客户端在红中,其实也有使用到网页,对于一些展示性的页面或者急于开发的页面,就会使用网页代替,所以现在有些公司,会混合使用两者。
二、Socket
套接字,一个要想使用网络必须了解的知识。在Python中,把socket进行了处理,先看代码。模拟的客户端和服务端。
client.py
import socket #创建一个client对象 client = socket.socket() server_ip_port = ('IP地址', int型端口号) #根据IP地址和端口号去连接对方的服务器 client.connect(server_ip_port) while 1: to_client_msg = input('对服务端说:') if 'Q' == to_client_msg.upper(): break client.send(to_client_msg.encode('utf-8')) from_server_msg = client.recv(1024) print('服务端说:', from_server_msg.decode('utf-8')) client.close()
server.py
import socket #使用socket获取一个server server = socket.socket() ip_port = ('IP地址', int型端口号) #把IP端口号和server绑定起来 server.bind(ip_port) #监听消息 server.listen() #等待客户端的连接吧 conn, addr = server.accept() while 1: #接收消息,对方以字节传递过来的,设置一个每次最大接收值,一般是1024 from_client_msg = conn.recv(1024) #打印时,要解码 print(addr[0] + "说:", from_client_msg.decode('utf-8')) to_client_msg = input('对' + addr[0] + "说:") if 'Q' == to_client_msg.upper(): break #给对方发送消息时,也要是字节 conn.send(to_client_msg.encode('utf-8')) #最后不使用了就关闭连接 conn.close() server.close()