发表于 2025-7-9 02:48:43
|
显示全部楼层
广西壮族自治区柳州市
变量名 类 型 静态 数组 备 注 sock 整数型 sender 整数型 readfds fd_set addr 文本型 data 文本型 devices devices alive 文本型 0
标准输出 ( ,
“发现门禁设备” ,
#换行符 ) 标准输出 ( ,
“创建设备套接字” ,
#换行符 ) sock =
socket_socket ( #AF_INET, #SOCK_DGRAM ) setsockopt ( sock,
#SOL_SOCKET, #SO_BROADCAST, 字符 ( 1
) , 4
) sock_settimeout ( 5
) sock_bind ( sock,
“0.0.0.0” , 7000
) 标准输出 ( ,
“发送广播请求” ,
#换行符 ) sender =
socket_socket ( #AF_INET, #SOCK_DGRAM ) setsockopt ( sender,
#SOL_SOCKET, #SO_BROADCAST, 字符 ( 1
) , 4
) sender_sendto ( sender,
“discover acs all” ,
“255.255.255.255” , 6000
) closesocket ( sender
) 标准输出 ( ,
“接收设备回应” ,
#换行符 ) 判断循环首 ( 真 ) 如果真 ( sock_settimeout ( 5, sock, readfds
) = 0
) 跳出循环 ( ) addr = sock_recvfrom ( sock, 1024, data) 如果真 ( 寻找文本 ( data,
“alive” , ,
假 ) ≠ -1
) 加入成员 ( devices.ip, addr
) alive =
分割文本 ( data,
“alive” ,
) 加入成员 ( devices.ident, alive
[ 2
] ) 判断循环尾 ( ) closesocket ( sock
) WSACleanup ( ) 返回 ( devices
) 变量名 类 型 静态 数组 备 注 devices devices i1 整数型
devices =
discover_devices ( ) 标准输出 ( ,
“设备发现结果:” ,
#换行符 ) 变量循环首 ( 1,
取数组成员数 ( devices.ident
) , 1, i1
) 标准输出 ( ,
“IP地址: ” , devices.ip
[ i1
] ,
“, 设备标识: ” , devices.ident
[ i1
] ,
#换行符 ) 变量循环尾 ( ) 返回 ( 0
) socket_socket 整数型 参数1 整数型 参数2 整数型
WSAStartup ( 合并短整数 ( 2, 2
) ,
申请内存 ( 4096,
真 ) )
返回 ( socket ( 参数1, 参数2,
#IPPROTO_UDP ) )
sock_bind 参数1 整数型 参数2 文本型 RECEIVER_PORT 短整数型
变量名 类 型 静态 数组 备 注 a sockaddr_in
a.sin_family =
#AF_INET a.sin_addr =
htonl ( 参数2
) a.sin_port =
htons ( RECEIVER_PORT
) bind ( 参数1, a, 16
) sock_settimeout 整数型 参数 sock readfds fd_set
变量名 类 型 静态 数组 备 注 timeout timeval i1 整数型 a 整数型 b 整数型
. .
判断 ( 是否为空 ( sock
) )
a = 参数 × 1000 +
取启动时间 ( ) b = a -
取启动时间 ( ) 如果真 ( b < 0
) b = 0
返回 ( b) 返回 ( a) sender_sendto 参数1 整数型 参数2 文本型 参数3 文本型 参数4 短整数型
变量名 类 型 静态 数组 备 注 to sockaddr_in
to.sin_family =
#AF_INET to.sin_addr =
inet_addr ( 参数3
) to.sin_port =
htons ( 参数4
) sendto ( 参数1,
到字节集 ( 参数2
) ,
取文本长度 ( 参数2
) , 0, to, 16
) sock_recvfrom 文本型 参数 参数2 整数型 data 文本型
变量名 类 型 静态 数组 备 注 sender_addr sockaddr_in
data =
取空白文本 ( 参数2
) recvfrom ( 参数, data, 参数2, 0, sender_addr, 16
) 返回 ( inet_ntoa ( sender_addr.sin_addr
) )
sockaddr_in sin_family 短整数型 sin_port 短整数型 sin_addr 整数型 sin_zero 字节型 8
fd_set fd_count 整数型 fd_array 整数型 64
devices ip 文本型 1 ident 文本型 1
socket 整数型 ws2_32.dll socket af 整数型 type 整数型 protocol 整数型
setsockopt 整数型 ws2_32 setsockopt s 整数型 level 整数型 optname 整数型 a1 文本型 optlen 整数型
WSAStartup 整数型 ws2_32.dll WSAStartup wVersionRequested 整数型 lpWSAData 整数型
bind 整数型 ws2_32.dll bind s 整数型 a sockaddr_in namelen 整数型
htonl 整数型 ws2_32.dll htonl hostlong 文本型
htons 短整数型 ws2_32.dll htons hostshort 短整数型
select 整数型 ws2_32 select nfds 整数型 readfds fd_set writefds 整数型 exceptfds 整数型 a1 timeval
sendto 整数型 ws2_32.dll sendto s 整数型 buf 字节集 len 整数型 flags 整数型 to sockaddr_in tolen 整数型
inet_addr 整数型 ws2_32.dll inet_addr cp 文本型
closesocket 整数型 ws2_32.dll closesocket s 整数型
recvfrom 整数型 ws2_32 recvfrom s 整数型 buf 文本型 len 整数型 flags 整数型 from sockaddr_in fromlen 整数型
WSACleanup 整数型 ws2_32 WSACleanup
inet_ntoa 文本型 ws2_32.dll inet_ntoa in 整数型
发现门禁-随意写的不知道对不对.e
(10.99 KB, 下载次数: 0)