(二十六)C/S,socket初识

一、架构

    此处说的架构是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()

  

猜你喜欢

转载自www.cnblogs.com/asia-yang/p/10209959.html
今日推荐