zoukankan      html  css  js  c++  java
  • (二十六)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()
    

      

  • 相关阅读:
    Mysql字段约束
    MYSQL中数据类型介绍
    Redis常见的几种使用方式及其优缺点
    python解析jason串,数据存入数据库
    redo log
    Oracle控制文件(Control Files)
    笔记
    redis面试题
    mysqldump备份
    超简单的内网穿透技巧(使用花生壳进行内网穿透)
  • 原文地址:https://www.cnblogs.com/asia-yang/p/10209959.html
Copyright © 2011-2022 走看看