• socket建立tcp、udp链接


    建立不中断tcp链接:

    tcp服务端:

     1 from socket import *
     2 
     3 ip_port = ('192.168.0.101', 8000)
     4 buffer_size = 1024
     5 back_log = 5
     6 
     7 s_server = socket(AF_INET, SOCK_STREAM)  # 启用tcp链接
     8 s_server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)  # 允许重复使用IP地址
     9 s_server.bind(ip_port)  # 服务端绑定ip端口
    10 print('服务端已启动,地址为:{},端口为:{}'.format(*ip_port))
    11 s_server.listen(back_log)  # 监听客户端数量
    12 while True:
    13     conn, addr = s_server.accept()  # 等待客户端连接
    14     print('客户端已连接:', addr)
    15     while True:
    16         try:  # 如果客户端主动断开连接,则捕获异常,断开连接
    17             data = conn.recv(buffer_size)
    18             if not data: continue  # 若客户端发来消息为空,则重新接受——否则会导致tcp处于挂起在接收状态
    19             print('客户端发来消息:', data.decode('utf8'))
    20             conn.send(data.upper())  # 收到的消息是二进制格式,所以回复的时候不需要处理编码
    21         except Exception as e:
    22             print(e)
    23             break
    24     conn.close()

    tcp客户端:

     1 from socket import *
     2 
     3 ip_port = ('192.168.0.101', 8000)
     4 buffer_size = 1024
     5 
     6 s = socket(AF_INET, SOCK_STREAM)
     7 s.connect(ip_port)
     8 while True:
     9     data = input('::>').strip()
    10     s.send(data.encode('utf8'))
    11     msg = s.recv(buffer_size)
    12     print('收到来自服务端的消息:', msg)

    注意:tcp是需要建立双向连接的,所以需要监听客户端的链接,同时根据所建立的链接来收发消息。并且tcp的IP和端口绑定后(形成一个通道),建立连接之后不允许其他链接接入。

    补:TCP与UDP区别详见:https://blog.csdn.net/li_ning_/article/details/52117463

  • 相关阅读:
    [ SharePoint ADFS 开发部署系列 (一)]
    [ Office 365 开发系列 ] Graph Service
    [ Office 365 开发系列 ] 身份认证
    [ Office 365 开发系列 ] 开发模式分析
    [ Office 365 开发系列 ] 前言
    Debian安装Chrome
    SharePoint 常用操作杂谈
    SharePoint Managed Metadata 使用总结
    SharePoint PerformancePoint开发实例
    node使用mysql报错
  • 原文地址:https://www.cnblogs.com/wjlv/p/11622826.html
Copyright © 2020-2023  润新知