• (二十六)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()
    

      

  • 相关阅读:
    写在连载之前——DIY微型操作系统篇
    footer始终在页面最底部的方法(问题待检验)
    各种二级菜单代码
    复选框已经有checked,但是页面没有选中效果(解决)
    px em rem 的区别
    marquee标签详解
    Docker:正常运行的容器突然端口不通一般检查方法
    linux中 vm.overcommit_memory 的含义
    redis6 redis-cli cluster的使用总结
    利用Java反射机制优化简单工厂设计模式
  • 原文地址:https://www.cnblogs.com/asia-yang/p/10209959.html
Copyright © 2020-2023  润新知