以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  qqopen在规定时间没有响应  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128131)

--  作者:nxqtxwz
--  发布时间:2018/11/29 14:53:00
--  qqopen在规定时间没有响应

我的QQ总是时断时连的,有时能连上,使用正常,但一会儿就掉线;有时连不上,显示规定时间内末获服务器响应。不知是为什么,请老师给看看代码有没有问题呢?

 

 

 

服务器端:

UserLogging代码:

If e.User IsNot Nothing Then
       e.Success = True \'允许登录
    For Each u As UserInfo In Users
          If u.Name <> e.User.Name  Then
            If  u.Group > ""  Then
                e.Buddies.Add(u.Group & "." & u.Name)
             Else
                e.Buddies.Add(u.Name)
               End If
        End If
     Next
 End  If

 

启动代码:

QQServer.ServerIp = "0.0.0.0" \'指定IP地址
QQServer.ServerPort = 52177 \'指定登录端口
QQServer.HeartbeatInterval = 30 \'指定心跳时间
QQServer.HeartbeatTimeout = 100 \'指定心跳超时时间
QQServer.PortRange = e.Form.Controls("TextBox1").Value \'指定随机端口范围
QQserver.Buildin = True \'启用内置身份验证
QQServer.Start() \'启动QQServer

 

 

客户端代码:

 

If QQClient.Ready Then
    QQClient.OpenChatWindow()
Else
    QQClient.ServerIP = "218.203.157.198"      \'指定服务器IP地址
    QQClient.ServerPort = 52177                 \'指定服务器端口
    If user.Type = UserTypeEnum.User Then       \'如果是普通用户
        QQClient.UserName =""
        QQClient.Password = ""
    Else      \'如果是开发者或管理员
        Dim pwd As String
        If InputPassWord(pwd,"提示","请输入" & User.Name & "的密码:") Then
            QQClient.UserName = User.Name
            QQClient.Password = pwd
        Else
            Return
        End If
    End If
    If QQClient.Start() = True \'如果登录成功
        QQClient.OpenChatWindow()
        \'e.Form.Controls("btnChat").Enabled = True
        Dim msg As String =  "恭喜,OpenQQ登录成功!"
        If QQClient.ServerMessage > "" Then \'如果服务器返回了欢迎信息
            msg = msg & QQClient.ServerMessage
        End If
        ConfigBar.Items("OpenQQ").SmallImage = GetImage("online.ico")
        popMessage(msg,"提示",PopiconEnum.Infomation,5)
    Else \'如果登录失败,显示服务器返回错误信息\'
        \' e.Form.Controls("btnChat").Enabled = False
        PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)
    End If


--  作者:有点甜
--  发布时间:2018/11/29 16:11:00
--  

1、你的心跳间隔调大一些

 

QQServer.HeartbeatInterval = 60 \'指定心跳时间
QQServer.HeartbeatTimeout = 180 \'指定心跳超时时间

 

2、代码没问题,如果掉线或者连不上,就是你服务器网络不稳定造成的。


--  作者:nxqtxwz
--  发布时间:2018/11/29 17:27:00
--  
以下是引用有点甜在2018/11/29 16:11:00的发言:

1、你的心跳间隔调大一些

 

QQServer.HeartbeatInterval = 60 \'指定心跳时间
QQServer.HeartbeatTimeout = 180 \'指定心跳超时时间

 

2、代码没问题,如果掉线或者连不上,就是你服务器网络不稳定造成的。

请问老师,这段代码要放在AfterOpenProject中怎么改呢,红色的代码显示错误。

QQServer.ServerIp = "0.0.0.0" \'指定IP地址
QQServer.ServerPort = 52177 \'指定登录端口
QQServer.HeartbeatInterval = 60 \'指定心跳时间
QQServer.HeartbeatTimeout = 180 \'指定心跳超时时间
QQServer.PortRange = e.Form.Controls("TextBox1").Value \'指定随机端口范围
QQserver.Buildin = True \'启用内置身份验证
QQServer.Start() \'启动QQServer


--  作者:有点甜
--  发布时间:2018/11/29 17:41:00
--  

比如

 

QQServer.PortRange = "52000/53000" \'指定随机端口范围