zoukankan      html  css  js  c++  java
  • python的socket编程

    socket主要用于长连接 

    简单DEMO:

    Server端:

    import socket
    
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind(('0.0.0.0', 8000))
    server.listen()
    sock, addr = server.accept()
    
    # 获取从客户端发送的数据
    data = sock.recv(1024)
    print(data.decode("utf8"))
    
    sock.send("Hi,{}".format(data.decode("utf8")).encode("utf8"))
    
    server.close()
    sock.close()

    client端:

    import socket
    
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect(('127.0.0.1', 8000))
    client.send("feng".encode("utf8"))
    data = client.recv(1024)
    print(data.decode("utf8"))
    client.close()

    结果:

    server:  feng

    client:  Hi,feng

    简易聊天室:

    Server端:

    import socket
    import threading
    
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind(('0.0.0.0', 8000))
    server.listen()
    
    
    def handle_sock(sock, addr):
        data = sock.recv(1024)  #
        print(data.decode("utf8"))
        re_data = input()
        sock.send(re_data.encode("utf8"))  #
    
    
    # 获取从客户端发送的数据
    # 一次获取1k数据
    while True:
        sock, addr = server.accept()
    
        # 用线程去处理新接收的连接(用户)
        client_thread = threading.Thread(target=handle_sock, args=(sock, addr))
        client_thread.start()

    client端:

    import socket
    
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect(('127.0.0.1', 8000))
    
    while True:
        re_data = input()
        client.send(re_data.encode("utf8"))  #
    
        data = client.recv(1024)  #
        print(data.decode("utf8"))

    结果:

    多个client可以给server发消息

  • 相关阅读:
    运算
    使用mysql出现错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '??????' in 'field list'
    POI-HSSF and POI-XSSF
    java pio项目使用
    mysql安装及卸载
    pdf转word
    【android studio】android studio使用过程中,搜集的一些问题
    github提交失败并报错java.io.IOException: Authentication failed:
    收集的github的东西
    Material Design
  • 原文地址:https://www.cnblogs.com/lisen10/p/10829889.html
Copyright © 2011-2022 走看看