写一个包含【UDP接收】和【TCP发送】的中转站程序

前言

帮朋友写个小脚本:

在本地建立UDP 服务端和TCP 客户端,将以UDP协议接收到的数据用TCP协议发送出去。

在这里插入图片描述

开始

1. 定义连接

# 创建连接
UDP_Rev_Socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
TCP_Trans_Socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # TCP

2. 定义配置方法

1)配置本地UDP 服务端的开放端口:

# 输入本地UDP服务器开放端口
def Input_UdpServer_PORT():
    print("\n----- 准备开启本地UDP服务器 -----")
    return int(input("请输入本机UDP服务器的开放端口:"))

2)需要连接的远端TCP 服务器的IP地址和端口:

# 输入TCP 客户端IP地址
def Get_TcpServer_IP():
    print("\n\n----- 准备连接远端TCP服务器 -----")
    return str(input("请输入需要连接的TCP服务器的IP地址:"))

# 输入TCP 客户端的开放端口
def Get_TcpServer_PORT():
    return int(input("请输入需要连接的TCP服务器的开放端口:"))

3)用TCP协议发送数据

# TCP发送
def TCP_Transmit(Socket, DATA):
    Socket.send(DATA) # 发送数据

3. main

def main():
    #------------------------------------------
    U_PORT = Input_UdpServer_PORT()
    UDP_Rev_Socket.bind(('127.0.0.1', U_PORT)) # 绑定端口
    print("\n已成功开启本地UDP服务器!")
    #------------- 已开启UDP服务端 -------------

    #------------------------------------------
    T_IP = Get_TcpServer_IP()
    T_PORT = Get_TcpServer_PORT()
    TCP_Trans_Socket.connect((T_IP, T_PORT))
    print("\n已成功连接远端TCP服务器!")
    #------------- 已连接TCP客户端 -------------

    print("\n\n软件配置成功!")
    print('\n\n正在等待数据......')
    msg_num = 0
    while True:
        # 无数据接收则线程挂起,等待数据
        DATA, ADDR = UDP_Rev_Socket.recvfrom(1024)
        msg_num = msg_num + 1
        print("\n-----成功接收第" + str(msg_num) + "个数据,数据来源为%s:%s-----" % ADDR)
        # print('接收到IP地址为 %s:%s 发来的数据' % ADDR)
        print("原始数据:")
        print(DATA)
        DATA = str(DATA) + "\n"
        t = threading.Thread(target=TCP_Transmit, args=(TCP_Trans_Socket, DATA.encode()))
        t.start()
        print("\n该数据已成功转发至TCP服务器。")
        print("\n-------------------------------------------------------")
    UDP_Rev_Socket.close()

在这里插入图片描述

最后

以上就是全部核心代码啦!是不是也挺简单呢~~

这是我写的一个更加完整的程序,大家有兴趣可以下载使用:
UDP_TCP中转站.exe
在这里插入图片描述
UDP_TCP中转站:
在这里插入图片描述
手机上TCP接收:
在这里插入图片描述

发布了312 篇原创文章 · 获赞 165 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/weixin_40973138/article/details/105689174