以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]QQService服务器不能运行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171856)

--  作者:饭浇盖
--  发布时间:2021/9/12 21:43:00
--  [原创]QQService服务器不能运行
按照这个教程在阿里云设置了QQService还是不能
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=714467&ID=104284&skin=1

显示规定时间内不能获取服务器的响应,然后我在服务端做测试 也是没有接收到信号。不知道问题在哪?防火墙  安全组  都设置了

--  作者:有点蓝
--  发布时间:2021/9/12 21:46:00
--  
防火墙  安全组等设置截图发上来看看

QQService服务器服务端启动代码,事件代码

qqclient启动代码发上来看看

--  作者:饭浇盖
--  发布时间:2021/9/12 21:51:00
--  
If QQClient.Ready Then
    QQClient.Stop()
End If

QQClient.ServerIP = e.Form.Controls("tbxIp").text \'指定服务器IP地址

QQClient.ServerPort = e.Form.Controls("tbxPort").text  \'指定服务器登录端口

QQClient.UserName = e.Form.Controls("tbxName").text

QQClient.Password = e.Form.Controls("tbxPassword").text

If QQClient.Start() = True \'如果登录成功

    Dim msg As String =  "恭喜,OpenQQ登录成功!"
    

    If QQClient.ServerMessage > "" Then \'如果服务器返回了欢迎信息

        msg = msg & QQClient.ServerMessage

    End If

    PopMessage(msg,"提示",PopiconEnum.Infomation,5)

Else \'如果登录失败,显示服务器返回错误信息

   PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)

End If
e.Form.Close()



这是客户端代码



下面是服务器代码:

\'======================启动OpenQQService
If QQServer.Ready Then
    QQServer.Stop
End If
QQServer.ServerIp = Functions.Execute("Get","OpenQQService",0) \'指定IP地址
QQServer.ServerPort = Functions.Execute("Get","OpenQQService",1)  \'指定登录端口
QQServer.HeartbeatInterval = Functions.Execute("Get","OpenQQService",4)  \'指定心跳时间
QQServer.HeartbeatTimeout = Functions.Execute("Get","OpenQQService",3)  \'指定心跳超时时间
QQServer.PortRange = Functions.Execute("Get","OpenQQService",2)  \'指定随机端口范围
QQServer.Start()

下面是登录监听代码:

Dim dr As DataRow

dr = DataTables("Users").Find("userid = \'" & e.UserName & "\'")
If dr Is Nothing  Then \'判断此用户不存在
    e.Message  = "用户Id错误!" \'返回给登录者的提示信息
    Return
End If
If dr("OpenQQ密码") <> e.Password Then \'如果密码错误
    e.Message  = "登录密码错误!" \'返回给登录者的提示信息
    Return
End If

e.Success = True \'允许用户登录
\'添加所有同事为好友
For Each dr2 As DataRow In DataTables("Users").DataRows
    Dim nm As String =  dr2("userid")
    If nm <> e.UserName Then \'如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

下面是接收消息代码:

Output.Show(e.Message)
Dim s() As String=e.Message.split("@")
If s(0)="T" Then
    Dim result() As String=s(1).Split("|")
    Dim name As String=result(0)
    Dim dr As DataRow=DataTables("Users").Find("name=\'" & name & "\'")
    If dr IsNot Nothing Then
        dr(result(1))=result(2)
    End If
    dr.save()
    dr.Load()
End If

--  作者:有点蓝
--  发布时间:2021/9/12 21:55:00
--  
这里每一项填写的是什么?
QQClient.ServerIP = e.Form.Controls("tbxIp").text
msgbox(QQClient.ServerIP)
QQClient.ServerPort = e.Form.Controls("tbxPort").text 
msgbox(QQClient.ServerPort )
……
msgbox(xxx )
这里呢?
QQServer.ServerIp = Functions.Execute("Get","OpenQQService",0)
QQServer.ServerPort = Functions.Execute("Get","OpenQQService",1) 
……

--  作者:饭浇盖
--  发布时间:2021/9/12 21:57:00
--  
我重启了下云服务器  现在可以了 谢谢老师