python udp sendto,python & udp做简单的消息传递

该博客介绍了如何通过Python程序获取动态分配的内网出口IP地址,并实现远程连接。1.0版本展示了客户端和服务端的UDP通信实现,2.0版本则优化为仅服务端监听,客户端通过命令行发送数据,服务端记录并返回IP地址。
摘要由CSDN通过智能技术生成

内网的出口ip地址是动态变化的,而且是路由器动态分配的,在家如果想要连上,理论上需要拿到当前路由器的出口ip地址,及局域网内的端口映射即可.

于是我们可以通过一个简单的python小程序,访问远程地址,拿到当前动态分配的ip.

1.0版本是这样的 有客户端 有服务端

# -*- coding:utf-8 -*-

import socket

def udpClient():

address=('127.0.0.1',8080)

udpClientSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

while True:

data=raw_input('>')

if not data:

break

udpClientSocket.sendto(data,address)

data,addr=udpClientSocket.recvfrom(2048)

print data

udpClientSocket.close()

udpClient()

server

# -*- coding:utf-8 -*-

import socket

from time import ctime

def udpServer():

buffer=2048

address=('127.0.0.1',8080)

udpsock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

udpsock.bind(address)

while True:

print 'wait for message...'

data,addr=udpsock.recvfrom(buffer)

udpsock.sendto('[%s]%s' %(ctime(),data),addr)

print '...received from and retuned to:',addr

udpsock.close()

udpServer()

2..0版是这样的  有服务端 无客户端

客户端是 一个定时任务 格式为:

echo 想要发送的内容 > /dev/udp/服务端p/服务端port

样例 :               echo something what ?  > /dev/udp/192.168.0.1/9090

服务端是这样的

root@localhost:/me/udpservices# more server.py

# -*- coding:utf-8 -*-

import socket

from time import *

def udpServer():

buffer=2048

address=('0.0.0.0',1990)

try:

udpsock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

udpsock.bind(address)

while True:

print 'wait for message...'

data,addr=udpsock.recvfrom(buffer)

timestr=strftime("%Y-%m-%d %H:%M:%S",localtime())

print addr[0]

udpsock.sendto('%s' %(addr[0]),addr)

file_out=open("./ip.txt",'a')

file_out.write('[%s]   %s  %s\n' %(timestr,data,addr[0]))

print '...received from and retuned to:',addr

file_out.close();

finally:

udpsock.close()

udpServer()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值