以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  QQserver访问的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90969)

--  作者:天蝉一线
--  发布时间:2016/9/26 17:35:00
--  QQserver访问的问题
为什么我把QQserver放到服务器上,防火墙的入账规则设置了UDP,端口8003,QQclient输入服务器地址,弹出访问服务器超时

我在项目事件afertopenobject 里面设置了代码

QQServer.ServerPort = 8003 \'指定端口
QQServer
.HeartbeatInterval = 30 \'指定心跳时间
QQServer
.HeartbeatTimeout = 100 \'指定心跳超时时间
QQServer
.Start() \'启动QQServer


其他的设置按照实例做的

客户端登录的时候出现了“访问服务器超时”,客户端的代码都是照搬的,不知道哪个地方有问题

--  作者:有点蓝
--  发布时间:2016/9/26 17:44:00
--  
QQclient登录代码、QQserver的UserLogging代码看看
--  作者:天蝉一线
--  发布时间:2016/9/26 17:52:00
--  
QQSERVER的USERLOGGING代码如下:
Dim pts() As String = e.UserName.Split(".")
Dim dr As DataRow
dr = DataTables("users").Find("dwmc = \'" & pts(0) & "\' And name = \'" & pts(1) & "\'")
If dr Is Nothing  Then \'判断此用户不存在
    e.Message  = "用户名错误!" \'返回给登录者的提示信息
    Return 
End If
If dr("password") <> e.Password Then \'如果密码错误
    e.Message  = "登录密码错误!" \'返回给登录者的提示信息
    Return
End If
e.Success = True \'允许用户登录
\'添加存储在好友列的非本部门的好友
If dr.IsNull("hy") = False Then
    Dim nms() As String = dr("hy").Split(",")
    e.Buddies.AddRange(nms)
End If
\'最后添加相同部门的同事为好友
For Each dr In DataTables("users").Select("dwmc = \'" & pts(0) & "\'")
    Dim nm As String =  dr("dwmc") & "." & dr("name")
    If nm <> e.UserName Then \'如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

QQclient 的登录代码 afterload事件代码e.Form.Controls("btnChat").Enabled = QQClient.Ready
登录按钮click代码
If QQClient.Ready Then
    MessageBox.show("QQClient已经启动,请先关闭","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
QQClient.ServerIP = e.Form.Controls("txtIP").Value  \'指定服务器IP地址
QQClient.ServerPort = e.Form.Controls("txtPort").Value  \'指定服务器端口
QQClient.UserName = e.Form.Controls("txtUserName").Value \'指定登录用户名
QQClient.Password = e.Form.Controls("txtPassword").Value
If QQClient.Start() = True \'如果登录成功
    e.Form.Controls("btnChat").Enabled = True
    Dim msg As String =  "恭喜,OpenQQ登录成功!"
    If QQClient.ServerMessage > "" Then \'如果服务器返回了欢迎信息
        msg = msg & QQClient.ServerMessage
    End If
    popMessage(msg,"提示",PopiconEnum.Infomation,5)
Else \'如果登录失败,显示服务器返回错误信息
    e.Form.Controls("btnChat").Enabled = False
    PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)
End If



--  作者:有点蓝
--  发布时间:2016/9/26 18:00:00
--  
QQClient.ServerIP,输入的是什么地址,必须是服务端的真实ip

QQClient.UserName = e.Form.Controls("txtUserName").Value \'指定登录用户名
输入的用户名是否符合dr("dwmc") & "." & dr("name")这种格式
[此贴子已经被作者于2016/9/26 18:00:48编辑过]