python udp发送数据的问题

不用connect和send,直接sendto(addr, data)应该就不检测服务器有没有开。

❷ 如何用python方法检测UDP端口

如何用python方法检测UDP端口,首先要了解什么是UDP端口及作用。个人理解是:UDP端口是含有网络服务必须的源端口和目的端口信息,用以建立和实现网络传输服务。

至于如何用python方法检测UDP端口呢?参考下边这段网友提供的代码吧。

socket、threading、time、Queue这些是要用到的python方法模块。

importsocket
importthreading
importtime
importstruct
importQueue

queue=Queue.Queue()

defudp_sender(ip,port):
try:
ADDR=(ip,port)
sock_udp=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock_udp.sendto("abcd...",ADDR)
sock_udp.close()
except:
pass


deficmp_receiver(ip,port):
icmp=socket.getprotobyname("icmp")

try:
sock_icmp=socket.socket(socket.AF_INET,socket.SOCK_RAW,icmp)

exceptsocket.error,(errno,msg):

iferrno==1:
#Operationnotpermitted

msg=msg+(
"-"
"runningasroot."
)
raisesocket.error(msg)
raise#raisetheoriginalerror

sock_icmp.settimeout(3)

try:
recPacket,addr=sock_icmp.recvfrom(64)

except:
queue.put(True)
return

icmpHeader=recPacket[20:28]

icmpPort=int(recPacket.encode('hex')[100:104],16)

head_type,code,checksum,packetID,sequence=struct.unpack(
"bbHHh",icmpHeader
)
sock_icmp.close()

ifcode==3andicmpPort==portandaddr[0]==ip:
queue.put(False)
return

#


defchecker_udp(ip,port):

thread_udp=threading.Thread(target=udp_sender,args=(ip,port))
thread_icmp=threading.Thread(target=icmp_receiver,args=(ip,port))

thread_udp.daemon=True
thread_icmp.daemon=True

thread_icmp.start()
time.sleep(0.1)
thread_udp.start()

thread_icmp.join()
thread_udp.join()
returnqueue.get(False)

if__name__=='__main__':
importsys

printchecker_udp(sys.argv[1],int(sys.argv[2]))


❸ Python 网络客户端和服务端udp和select都能实现并发,有啥区别呢!

简单来说:没什么区别!因为UDP本来就是报文,也就是“发出后不管”,因此返回回极快,答根本不会阻塞进程,接收时也是检查一下缓冲区后立刻返回,同样不阻塞进程。既然都是不阻塞进程的,因此select也就多余了!

❹ python设计UDP通信时,recvfrom()中的参数是什么意思

socket.recvfrom(bufsize[, flags])

Receive data from the socket. The return value is a pair (bytes, address) where bytes is a bytes object
representing the data received and address is the address of the socket
sending the data. See the Unix manual page recv(2) for
the meaning of the optional argument flags; it defaults to zero. (The
format of address depends on the address family — see above.)

recvfrom(1)就是从缓冲区读一个字节的数据

❺ python中怎样用udp服务器实现域名注册和查询

这个是可以直接查到的啊

❻ PYTHON UDP/TCP 服务器与客户端如何连接

你没有编程经验,一来就搞网络编程,你是天才吗?
先从编程的最基本概念开始学起吧。先买本《python基础教程》把前面基础的部分读懂了,上机实践。遇到错误信息了,自己去网络查找错误的原因。

至于你说的这几个函数,帮助手册上都有详细说明的。
变量A=5,不能直接通过网络传递,网络只能传二进制数据。你的变量需要串行化,比如变成字符串或者base64编码,才能传递,到了服务端要根据你事先定义好的协议去解析,才能重新得到这个变量。

❼ python3套接字udp设置接受数据超时

Sometimes,you need to manipulate the default values of certain properties of a socket library, for example, the socket timeout.

设定并获取默认的套接字超时时间。

1.代码

1 import socket
2
3
4 def test_socket_timeout():
5 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
6 print("Default socket timeout: %s" % s.gettimeout())
7 # 获取套接字默认超时时间
8 s.settimeout(100)
9 # 设置超时时间
10 print("Current socket timeout: %s" % s.gettimeout())
11 # 读取修改后的套接字超时时间
12
13
14 if __name__ == '__main__':
15 test_socket_timeout()
2. AF_INET和SOCK_STREAM解释

1 # 地址簇
2 # socket.AF_INET IPv4(默认)
3 # socket.AF_INET6 IPv6
4 # socket.AF_UNIX 只能够用于单一的Unix系统进程间通信
5
6 # socket.SOCK_STREAM(数据流) 提供面向连接的稳定数据传输,即TCP/IP协议.多用于资料(如文件)传送。
3.gettimeout()和settimeout()解释

1 def gettimeout(self): # real signature unknown; restored from __doc__
2 """
3 gettimeout() -> timeout
4
5 Returns the timeout in seconds (float) associated with socket
6 operations. A timeout of None indicates that timeouts on socket
7 operations are disabled.
8 """
9 return timeout
10
11
12 def settimeout(self, timeout): # real signature unknown; restored from __doc__
13 """
14 settimeout(timeout)
15
16 Set a timeout on socket operations. 'timeout' can be a float,
17 giving in seconds, or None. Setting a timeout of None disables
18 the timeout feature and is equivalent to setblocking(1).
19 Setting a timeout of zero is the same as setblocking(0).
20 """
21 pass
22 # 设置套接字操作的超时期,timeout是一个浮点数,单位是秒。值为None表示没有超时期。
23 # 一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如 client 连接最多等待5s )
4.运行结果

1 Default socket timeout: None
2 Current socket timeout: 100.0

❽ python实现多地址UDP同时,高效接收

每个udp socket只能bind到一个本地端口上。你可以多搞几个,然后加select就可以了。

❾ python截取无人机UDP包,如何解析内容

PYTHON首先要安装scapy模块

PY3的安装scapy-python3,使用PIP安装就好了,注意,PY3无法使用pyinstaller打包文件,PY2正常

PY2的安装scapy,比较麻烦

❿ python 中怎么用UDP模拟实现ftp服务器 与客户端

这个应该是可以实现的。你可以使用一个twist的包。
用异步方式实现通讯。
然后再将FTP协议中的几个方法,全部用UDP封装一下。不过要做包的检验。
还有顺序。