zoukankan      html  css  js  c++  java
  • 网络编程-01-服务端搭建

    '''
    1.软件
    软件APP形式: cs架构, client --> server. (-->:客户端与服务端是通过网络连接的)
    游览器形式: BS架构, browser --> server

    2.如何实现相互通信?
    (1)相互通信本质是发送01代码
    (2)交换机的作用
    (3)通过ipconfig查看自己的内网IP
    (4)公网IP,掏钱

    3.socket模块是专门用来实现网络通信的

    4.一个程序要有自己独立的端口,不能与其他程序重复,否则会造成连接紊乱.例如服务器的电脑上同时有qq(端口:8001) 与 微信(端口:8002)这两款程序,
    则可以认为服务器电脑上提供(开放)了两个端口,一个对应qq程序的,一个对应微信程序的.当qq的数据从客户端发来了,就需要去qq对应的端口8001上进行连接.
    同理当微信的数据来了,就去连接8002端口.
    设置不同端口实现了,收发数据时不同程序之间的相互隔离.




    '''
    import socket

    # 创建服务端的socket对象
    server = socket.socket()

    # 绑定IP和端口.'192.168.13.155'是自己IP地址,用来标识你自己.'8000'是不同程序的端口,为了实现程序与程序之间的相互隔离.
    server.bind(('192.168.43.148', 8000))

    # 后面最多排5个可以对服务端进行连接
    server.listen(5)

    # 等待客户端来连接,如果没人来就傻傻的等待,也即这行代码可以阻塞程序
    conn, addr = server.accept() # conn是客户端和服务端连接的对象,服务器以后要通过该对象进行收发数据.addr是客户端地址信息.

    # 通过对象去获取(接收)客户端发送的信息,recv要是未接受到客户端发送的信息,那服务端会一直等,也即recv会阻塞程序向下进行.
    data = conn.recv(1024) # 1024表示一次性最多可获取(接收)1024个字节

    # 打印从客户端接收的信息
    print(data)

    # 给客户端回一个信息,也是通过连接对象conn进行的信息回复,回一个字节形式的'stop'
    conn.send(b'stop')

    # 通过连接对象关闭连接,但客户端依旧存在
    conn.close()

    # 关闭服务端的服务,关闭后就不能再有客户端连接上服务端了
    server.close()
  • 相关阅读:
    DOCTYPE和namespace
    由浅入深漫谈margin属性
    checkbox的完美用户体验
    XSL 属性模板的运用
    各浏览器里默认的表单控件(form controls)
    简单form标准化实例(二):语义结构
    zindex在IE中的迷惑(二)
    最简单的清除浮动的方法
    Default style sheet for HTML 4
    PNG透明背景图片的无界应用
  • 原文地址:https://www.cnblogs.com/gongteng/p/13543332.html
Copyright © 2011-2022 走看看