• python-socket模块


    socket server

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import socket
    
    ip_port = ('127.0.0.1',9999)
    
    sk = socket.socket()
    sk.bind(ip_port)
    sk.listen(5)
    
    while True:
        print('server waiting...')
        conn,addr = sk.accept()
    
        client_data = conn.recv(1024)
        print("recv>",client_data.decode('utf-8'))
    
        resp = "我叫天南"
        conn.sendall(resp.encode('utf-8'))
        print("send>",resp)
    
        conn.close()

    socket client

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import socket
    ip_port = ('127.0.0.1',9999)
    
    sk = socket.socket()
    sk.connect(ip_port)
    
    sendstr = "你叫什么名字?"
    sk.sendall(sendstr.encode('utf-8'))
    print("send>",sendstr)
    
    server_reply = sk.recv(1024)
    print("recv>",server_reply.decode('utf-8'))
    
    sk.close()

    执行结果

    client:
    send> 你叫什么名字?
    recv> 我叫天南
    
    server:
    server waiting...
    recv> 你叫什么名字?
    send> 我叫天南
    server waiting...

    一个简单的web服务器应用

    #!/usr/bin/env python
    #coding:utf-8
    import socket
     
    def handle_request(client):
        buf = client.recv(1024)
        client.send("HTTP/1.1 200 OK
    
    ".encode('utf-8'))
        client.send("Hello, World".encode('utf-8'))
     
    def main():
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.bind(('localhost',8080))
        sock.listen(5)
     
        while True:
            connection, address = sock.accept()
            handle_request(connection)
            connection.close()
     
    if __name__ == '__main__':
      main()

    访问http://localhost:8080

  • 相关阅读:
    深入 kernel panic 流程【转】
    HDMI驱动热插拔检测方法
    WFE和WFI的区别
    SMP多核启动
    CPUFreq驱动
    DMA与cache一致性的问题
    深度理解select、poll和epoll
    Memory barrier 简介
    thinkphp的删除操作
    HOST文件配置
  • 原文地址:https://www.cnblogs.com/tiannan/p/6214336.html
Copyright © 2020-2023  润新知