socket-02

# -- coding: utf-8 --

_author__ = "HuaQiang Yan"
import socket


def handle_request(client):
    buf = client.recv(1024)  # 接收请求
    client.send(bytes("HTTP/1.1 200 OK\r\n\r\n", encoding='utf-8'))
    client.send(bytes("Hello World!", encoding='utf-8'))
    # 发送请求
    # bytes():转换成bytes类型
    # 当然直接encoding不用谢bytes也行,但是按照标准比较不会出错
    # 相当于 str(1)转换字符串
    # 相当于list((111,))转换成列表
    # 相当于bytes('sdfsd',)转换成bytes


def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建socket服务端,AF_INET:IPv4,SOCK_STREAM:TCP
    sock.bind(('0.0.0.0', 8000))  # 监听端口,1024以下为标准端口需要管理员权限开启,1024以上可以随意用
    sock.listen(5)  # 最大连接数

    while True:  # 循环
        connection, address = sock.accept()  # 只要有人连接获取该连接
        # connection:链接标记位, address:对方的地址
        handle_request(connection)  # 执行handle_reques处理函数
        connection.close()  # 连接断开 #也就是有人访问了该服务端,服务端返回数据后自动断开


if __name__ == '__main__':
    main()  # 执行该函数

  

socket-02_第1张图片

 

你可能感兴趣的:(socket-02)