| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 812 人关注过本帖
标题:请教怎么在VFP里触发一次网络通讯?
只看楼主 加入收藏
sych
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:587
专家分:751
注 册:2019-10-11
收藏
得分:0 
只是没事瞎琢磨,我想获取本地内网IP,在进行网络通讯的内网IP,如果有多块网卡,想知道哪个内网IP是在用的
2026-06-02 17:52
sych
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:587
专家分:751
注 册:2019-10-11
收藏
得分:0 
就用这个吧
test=CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
test.OPEN("get","http://www.baidu.com",.F.)
test.SEND
2026-06-02 18:04
sych
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:587
专家分:751
注 册:2019-10-11
收藏
得分:0 
我用那个获取ntp网络服务器时间的代码也不算网络访问,在GetExtendedTcpTable没有找到记录
2026-06-02 18:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11555
专家分:43678
注 册:2014-5-20
收藏
得分:0 
用网络监听,可以获取每个连接的IP、端口和进程。
2026-06-02 18:58
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11555
专家分:43678
注 册:2014-5-20
收藏
得分:0 
以下是引用sych在2026-6-2 18:07:08的发言:

我用那个获取ntp网络服务器时间的代码也不算网络访问,在GetExtendedTcpTable没有找到记录

GetExtendedTcpTable、GetExtendedUdpTable 是不是只获取当前活动 TCP、UDP 连接端口对应进程信息。

获取 ntp 网络受时服务,是不是用“无连接”协议,请求响应后就关闭连接。

2026-06-02 19:35
sych
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:587
专家分:751
注 册:2019-10-11
收藏
得分:0 
无连接协议吧
2026-06-02 21:14
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:162
专家分:392
注 册:2021-10-23
收藏
得分:10 
通过 Adapter 函数库可以获取正在使用的网卡信息 pAdapter GatewayList IpAddress String <>"0.0.0.0"时
图片附件: 游客没有浏览图片的权限,请 登录注册

通过GetExtendedTcpTable可以写一个类似系统netstat 的功能,可以包含远程和本地不同连接状态的IP,端口等
图片附件: 游客没有浏览图片的权限,请 登录注册

NTP时间获取主要是通过发送 NTP_Packet包, 可以查一下它的结构体,先 sendto, 再 FD_ZERO, FD_SET_  select_ 再 recvfrom即可
图片附件: 游客没有浏览图片的权限,请 登录注册

代码问deepseek都可以写出来,不难。
2026-06-02 22:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11555
专家分:43678
注 册:2014-5-20
收藏
得分:0 
以下是引用sych在2026-6-2 18:04:07的发言:

就用这个吧
test=CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
test.OPEN("get","http://www.baidu.com",.F.)
test.SEND

HTTP 1 协议是“无连接”协议,在连接事后枚举网络信息不可靠,应该在连接事前开始监听。

2026-06-03 11:16
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:162
专家分:392
注 册:2021-10-23
收藏
得分:0 
他可能需要的是网络时间,做时间授权用。
CLEAR
LOCAL xErr as Exception
LOCAL WinHttpReq
TRY
WinHttpReq=CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
WinHttpReq.OPEN("HEAD","https://www.baidu.com",.F.)
WinHttpReq.Send()
?WinHttpReq.GetResponseHeader("Date")
CATCH TO xErr
  ?xErr.Message
FINALLY
  RELEASE WinHttpReq
ENDTRY
图片附件: 游客没有浏览图片的权限,请 登录注册



[此贴子已经被作者于2026-6-3 21:05编辑过]

2026-06-03 21:04
sych
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:587
专家分:751
注 册:2019-10-11
收藏
得分:0 
获取ntp时间的已经完善了,这个就是单纯获取内网IP,多个网卡时比较有用
test=CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
test.OPEN("get","http://www.baidu.com",.F.)
test.SEND
这个有用
2026-06-03 22:24
快速回复:请教怎么在VFP里触发一次网络通讯?
数据加载中...
 
   
关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039782 second(s), 9 queries.
Copyright©2004-2026, BCCN.NET, All Rights Reserved