| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1248 人关注过本帖
标题:这个系统带DOS命令怎么用VB表达出来?
只看楼主 加入收藏
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
结帖率:82.19%
收藏
已结贴  问题点数:20 回复次数:16 
这个系统带DOS命令怎么用VB表达出来?
判断服务器某个端口是否开启  在XP系统命令符里用 这种方式表达  start /min telnet 58.215.117.59 30810,命令符窗口就会自动出来一个最小化的窗口,如果30810端口是开启的就不会自动关闭,如果这个端口是关闭的,过一会最小化的窗口就会关闭,每次手动输入很麻烦。有没有什么办法用VB编写一个程序,求代码,谢谢。
搜索更多相关主题的帖子: 服务器 XP系统 start 
2015-01-15 18:30
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:5 
使用 winsock 去连接这个端口,
如果连接成功,说明端口打开。
连接被关闭,说明端口被关闭。
连接超时,说明端口属于隐形状态,有防火墙会造成这种情况。

授人于鱼,不如授人于渔
早已停用QQ了
2015-01-16 08:28
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:5 
Shell "telnet 192.168.0.1 30810"

大开眼界
2015-01-16 09:19
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
收藏
得分:0 
1、2楼的版主你们好!还望给个详细的代码!我的意思是 如果端口开放就提示文字 如果没开放也提示文字,用VB最简单的方法去实现,谢谢!

[ 本帖最后由 事业男儿 于 2015-1-16 12:09 编辑 ]
2015-01-16 12:04
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 4楼 事业男儿
?这个不就是代码吗?
新建一个按钮,按下按钮事件中增加一行代码

Shell "telnet 192.168.0.1 30810"

大开眼界
2015-01-16 12:10
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
收藏
得分:0 
回复 5楼 lianyicq
Private Sub Command1_Click()
Shell "telnet 58.215.117.59 30810"
End Sub

但是怎么样在界面增加一个 Text1 把结果显示在Text1里。 我有一个很笨的想法,就是判断命令符窗口的开启时间,我测试过没有开放的时候 20秒钟后命令符窗口就自动关闭,通过增加一个  Timer1来判断命令符窗口的开启时间,如果开启时间大于20秒就让Text1显示服务器窗口是开启的,反之就提示关闭,并反复自动测试,直到命令符窗口大于20秒后Timer1就停止。但是我觉得这种方法看起来很笨。还有没有其他的方法。
2015-01-16 18:43
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:5 
用2楼风版主的方法吧,代码可控,用shell命令则必须检测进程窗口是否关闭来判断,更麻烦。
2015-01-16 20:39
sj476606729
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:38
注 册:2015-1-17
收藏
得分:5 
写入文本保存后缀名为bat的文件,要测试直接打开,代码就是原来的telnet ip 端口例如   
    telnet 58.215.117.59 30810
    pause
    然后保存为bat文件再打开就会测试,然后按任意键结束
2015-01-17 23:21
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 6楼 事业男儿
那就试试这个
程序代码:
Option Explicit
Dim ifConnect As Boolean
Dim refuse  As Boolean
Private Sub Form_Load()
Form1.Show
Winsock2.LocalPort = 5000
Winsock2.Listen
Winsock1.Protocol = sckTCPProtocol
Winsock1.LocalPort = 5001
Winsock1.Connect "127.0.0.1", 5000
Do
DoEvents
Loop Until refuse Or ifConnect
If refuse Then
Form1.Caption = "强行拒绝"
Winsock1.Close
Winsock2.Close
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Winsock1.Close
Winsock2.Close
End Sub
Private Sub Winsock1_Connect()
ifConnect = True
Form1.Caption = "已连接"
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
If Number = 10061 Then refuse = True
End Sub


大开眼界
2015-01-19 09:45
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
收藏
得分:0 
回复 9楼 lianyicq
不好意思,前几天上网不方便,今天才赶回来。这个代码加一个时间控件,怎么会报错呢?
2015-01-21 12:28
快速回复:这个系统带DOS命令怎么用VB表达出来?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

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