zoukankan      html  css  js  c++  java
  • tcp服务端socket

    import socket
    
    if __name__ == '__main__':
        # 创建tcp服务端socket
        tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 立即释放端口号,重用端口
        # SOL_SOCKET: 表示当前socket
        # SO_REUSEADDR: 是否立即释放端口选项
        # True:表示立即释放端口
        tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
        # 绑定端口号
        tcp_server_socket.bind(("", 7878))
        # 设置监听,把主动套接字变成被动套接字, 被动套接字:以后只能接收客户端连接请求,不能收发消息,收发消息使用返回的新套接字
        # 128:表示等待的最大连接数
        tcp_server_socket.listen(128)
        # 等待接收客户端连接请求, 返回一个新的套接字说明建立连接成功,以后和客户端通信使用service_client_socket
        # accept会一直等待客户端建立连接,只有连接建立成功才会继续往下执行代码否则一直等待
        service_client_socket, ip_port = tcp_server_socket.accept()
        print(ip_port)
        # 接收客户端的消息
        recv_data = service_client_socket.recv(1024)
        # 这里可以自己定义编码格式,编码错误了则忽略
        print(recv_data.decode(encoding= 'utf-8', errors='ignore'), len(recv_data))     # ʹtcp~ 26
        # 解码数据
        recv_content = recv_data.decode("gbk")
        print(recv_content)  # 哈哈,我使用tcp发送数据啦~
        # 发送数据
        service_client_socket.send("这里是服务端。。。".encode("gbk"))
        # 关闭服务于客户端的socket
        service_client_socket.close()
        # 关闭服务端的socket
        tcp_server_socket.close()
    

      

  • 相关阅读:
    交换相邻字符(CharBuffer)
    ANSI和UNICODE
    关键路径
    拓扑排序 java
    MySql 中group by使用
    面试题2
    面试题
    K8S如何限制资源使用
    Kubernetes中配置Pod的liveness和readiness探针
    sed入门详解教程
  • 原文地址:https://www.cnblogs.com/wf-skylark/p/9104430.html
Copyright © 2011-2022 走看看