0
点赞
收藏
分享

微信扫一扫

详解Spring支持的几种注入方式

火热如冰 2024-06-05 阅读 6

流程图在这里插入图片描述

面向连接的套接字

面向连接的通信提供序列化的、可靠的和不重复的数据交付,而没有记录边界。主要的协议是传输控制协议(TCP);
TCP套接字,在python中,必须使用SOCK_STREAM作为套接字类型

tcp的特点

  • 面向连接
    通过双方必须先建立好连接才能进行数据的传输
  • 可靠传输
    TCP采用发送应答机制
    超时重传
    错误校验
    流量控制和阻塞管理

python 中客户端例子

import socket

'''
在 Python 中,if __name__ == '__main__': 是一个常见的结构,用于确保某些代码只有在直接运行这个模块时才会被执行,而在这个模块被作为导入的模块时不会被执行

'''
if __name__ == '__main__':
    '''
    创建tcp 客服端套接字
    '''
    tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    tcp_client_socket.connect(("10.211.55.6",9090))

    send_content = "hello,world,您好"
    send_data = send_content.encode("gbk")
    tcp_client_socket.send(send_data)

python 中服务端例子

可以支持多客户端模式

import  socket
import threading


def handler_client_request(client_socket,ip_port):
    recv_data = client_socket.recv(1024)
    if recv_data:
        print(recv_data.decode('utf-8'))
        send_content = "测试"
        client_socket.send(send_content.encode('utf-8'))
    else:
        print("客服端下线",ip_port)
    client_socket.close()


if __name__ == '__main__':

    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    tcp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)

    tcp_socket.bind(("",9090))

    # 128 表示最大等待建立链接的个数
    tcp_socket.listen(128)

    while True:
        new_client,ip_port = tcp_socket.accept()
        sub_thread = threading.Thread(target=handler_client_request, args=(new_client,ip_port))
        sub_thread.start()

    tcp_socket.close()



举报

相关推荐

0 条评论