• 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发消息

  • 相关阅读:
    java连接sqlserver2008报错 java.sql.SQLException: 对象名 '表名' 无效.
    hibernate中增加annotation @后不提示信息【转】
    java.io.IOException: Could not find resource SqlMapConfig.xml
    制作Lightbox效果
    myeclipse 启动卡住的解决办法
    SVN使用教程
    js基础关系运算符
    mysql怎样更改密码和用户名
    js实现点击按钮传值
    记一次Tomcat运行失败记录
  • 原文地址:https://www.cnblogs.com/lisen10/p/10829889.html
Copyright © 2020-2023  润新知