| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1248 人关注过本帖
标题:这个系统带DOS命令怎么用VB表达出来?
只看楼主 加入收藏
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 10楼 事业男儿
看看是报什么样的错。

大开眼界
2015-01-22 10:06
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
收藏
得分:0 
回复 11楼 lianyicq
lianyicq  你好!  这个代码是窗体加载的,我想把它用时间控件Timer1,每隔10秒加载一下,但是用时间控件加载只有一次成功然后第二次加载就开始报错
图片附件: 游客没有浏览图片的权限,请 登录注册


还有就是 在断网下 测试怎么都会显示连接呢? 我主要是想检查对方服务器端口是否开放。
CS.rar (1.83 KB)


[ 本帖最后由 事业男儿 于 2015-1-22 11:57 编辑 ]
2015-01-22 11:50
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 12楼 事业男儿
确定重新连接之前,winsock控件有没有关闭.
我的代码例子只是示例某些功能,要根据你的需要自己调整,更改.
比如说,你是测试服务器端口是不是开放,在用WINSOCK控件连接后,是不是该马上断开.
至于为什么断线了还显示连接,检查一下代码,估计是连接状态没有更新.

大开眼界
2015-01-22 12:16
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
收藏
得分:0 
跟新了的,在短线状态下测试都是连接。麻烦版主帮一下忙,我想在游戏 登录服务器开放的第一时间知道,迅速进入游戏。
2015-01-22 12:25
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:0 
Option Explicit
Dim ifConnect As Boolean
'Dim refuse  As Boolean       没找到哪里需要使用这个变量了


Private Sub Form_Load()
'Form1.Show          '这行可以不要,按你的死循环检测,那就需要

'应该是测试用的,不需要使用
'Winsock2.LocalPort = 30810
'Winsock2.Listen
Winsock1.Protocol = sckTCPProtocol

'Winsock1.LocalPort = 30811          '如果是本地发起连接,不要设置本地端口,如果要设置,也建议设置为0 ,让系统自动选择
Winsock1.Connect "58.215.117.59 ", 30810

'检测状态使用定时器去检测,不要使用循环,这样会造成 CPU 占用率100%。
'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 Timer1_Timer()
Static js As Long
 Const 检测时间 = 10             '每次自动连接间隔时间

If Not ifConnect Then               '如果前面没有连接成功,如果已连接成功,则不会再次去连接
    Exit Sub
End If

js = js + 1
If js > 检测时间 Then                   '到了时间
    js = 0                              '先设置计数器为0
   
'此段代码是用于确保连接成功但未触发 Winsock1_Connect 事件时的检测,一般情况用不到
If Winsock1.State = sckConnected Then
    ifConnect = True
    Form1.Caption = "已连接"
    Exit Sub
End If

    Winsock1.Close                  '不管状态,先关闭当前连接
    DoEvents                        '确保关闭操作完成
    Winsock1.Connect "58.215.117.59 ", 30810     '连接服务器
End If
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

授人于鱼,不如授人于渔
早已停用QQ了
2015-01-22 16:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:0 
有些代码行我是照你的代码抄的。
    Winsock1.Connect "58.215.117.59 ", 30810     '连接服务器
像这句,也应该是定义常量,使用代码里使用常量。这种程序就便于移植和可读。

不愿去动了。

授人于鱼,不如授人于渔
早已停用QQ了
2015-01-22 17:00
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
收藏
得分:0 
谢谢风版主的帮助,同时也谢谢lianyicq
2015-01-22 21:33
快速回复:这个系统带DOS命令怎么用VB表达出来?
数据加载中...
 
   



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

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