找回密码
 加入
搜索
查看: 2488|回复: 4

[网络通信] [已解决]UDPOpen可以接收数据吗?

[复制链接]
发表于 2008-12-28 00:54:23 | 显示全部楼层 |阅读模式
本帖最后由 zhouhaijin 于 2014-12-29 15:47 编辑

我看有些软件可以一个端口连接 服务器也可以发数据给客户机,客户机也可以发数据给服务器

我服务器是互联网IP,客户机是另一个互联网下的局域网里的机器
这样的情况下服务器可以发数据到客户机吗?

服务端代码
UDPStartup()
$socket = UDPBind("0.0.0.0",8976)

While 1
    $data = UDPRecv($socket,50)
    If $data = "1" Then
        MsgBox(0,"","0")
        $send=UDPSend($socket,"ok")
EndIf
sleep(10)
WEnd

Func OnAutoItExit()
    UDPCloseSocket($socket)
    UDPShutdown()
EndFunc



客户端代码
UDPStartup()
$socket = UDPOpen("服务端IP", 8976)

$status = UDPSend($socket,"1")
While 1
        $data = UDPRecv($socket,50)
        If $data = "ok" Then
                MsgBox(0,"ok","ok")
        EndIf
WEnd

Func OnAutoItExit()
    UDPCloseSocket($socket)
    UDPShutdown()
EndFunc



帮助里
UDPBind的说明好像可以一样
返回一个数组: $array[1] 包含一个真实的套接字(socket), $array[2] 包含一个指定的IP地址, $array[3] 包含端口. 我们需要这个信息才能在后面调用 UDPSend(), where we pass this socket structure/array(未知意思) .

他这里说明说可以用这个信息让UDPSend()用

[ 本帖最后由 zhouhaijin 于 2008-12-28 00:58 编辑 ]
 楼主| 发表于 2008-12-28 23:40:24 | 显示全部楼层
服务器是互联网IP,客户机是另一个互联网下的局域网里的机器
这样的情况下服务器可以发数据到客户机吗?
发表于 2008-12-29 00:09:20 | 显示全部楼层
暂时没有条件测试,理论上应该是可以的。
发表于 2008-12-31 11:51:12 | 显示全部楼层
取决于服务端 端口是否向外网开放。
 楼主| 发表于 2008-12-31 18:50:56 | 显示全部楼层
我想把UDPBind反过来用,就是服务端UDPBind收到客户端信息后再服务端发送信息给客户端.
我就是服务端发送信息到客户端作不了(客户端不能UDPBind,客户端是在另一个局域网里,客户端很多就不能端口映射)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 06:49 , Processed in 0.073968 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表