以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  OPENQQ服务器报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78786)

--  作者:黑苹果
--  发布时间:2015/12/17 10:29:00
--  OPENQQ服务器报错


相关函数代码为: 目前设置是客户端登陆时 向服务器发送GetIp信息,由服务器返回客户端的IP
该程序安装在自己的服务器上没报这个错误
但如果通过 阿里云主机登陆我的服务器,也提示这个 不知道这样的主机

将QQ服务端放到阿里云服务器上,在阿里云服务器上登陆客户端,服务器也报这个错误.
其它客户端电脑登陆有的出这个错误,有的不出


\'Functions.Execute("QQ消息接收处理",e)
Dim e As Object = Args(0)
If e.Message = "GetDate" Then
    e.ReturnValue = Date.Now
End If
If e.Message = "GetDatea" Then
    e.ReturnValue = Date.Now
End If

If e.Message = "GetWanIp" Then
    e.ReturnValue=QQserver.Users(e.UserName).WanIPAddress
End If

If e.Message = "GetLanIp" Then
    e.ReturnValue=QQserver.Users(e.UserName).LanIPAddress
End If
If e.Message = "GetIp" Then
    Dim wanip As String = QQserver.Users(e.UserName).WanIPAddress
    Dim lanip As String = QQserver.Users(e.UserName).LanIPAddress
    Dim wanip1() As String = wanip.Split(":")
    Dim lanip1() As String = lanip.Split(":")
    Dim wanip2 As String = wanip1(0)
    Dim lanip2 As String = lanip1(0)
    If Network.Ping(lanip2) = True Then
        lanip = lanip2
    Else
        lanip = wanip2  \'如果局域网拼不能就直接取广域网IP
    End If
    Dim pcip As String = wanip2 & ":" & lanip  \'取第二个值一般为局域网IP
    e.ReturnValue = pcip
End If

\'收到消息记录消息
Dim dr As DataRow =  DataTables("服务器信息").AddNew
dr("发送者") = iif(e.UserName > "",e.UserName,"服务器")
dr("时间") = Date.Now()
dr("信息") = e.Message
dr("来源") = "服务器端"
dr.save

\'自动编号参数传递类似于(:A订单表:DH1501A:)

Dim msg As String = e.Message
If msg.StartsWith(":A") AndAlso msg.EndsWith("A:") Then
    Dim id As Integer
    msg = msg.SubString(2, msg.Length - 4)
    Dim pts() As String = msg.Split(":")
    Dim dra As DataRow
    dra = DataTables("编号").Find("[表名] = \'" & pts(0) & "\' And [前缀] = \'" & pts(1) & "\'")
    If dra IsNot Nothing Then
        id= dra("顺序号") + 1
        dra("顺序号") =id
        dra.save
    Else
        id = 1
        Dim dd As DataRow = DataTables("编号").AddNew()
        dd("表名") = pts(0)
        dd("前缀") = pts(1)
        dd("顺序号") = 1
        dd.save
    End If    
    e.ReturnValue = id
End If

\'独占式编辑
Dim msg1 As String = e.Message
If msg1.StartsWith("?#") AndAlso msg1.EndsWith("#?") Then \'收到请求编辑信号
    Dim Key As String = msg1.SubString(2,msg1.Length - 4)
    If tbrk.Containskey(Key) = False Then \'如果无人编辑此行
        tbrk.Add(Key,e.UserName) \'登记申请者为此行的编辑者
        e.ReturnValue = "OK" \'通知申请者可以编辑
    ElseIf tbrk(Key) = e.UserName Then \'如果申请者就是之前登记的编辑者
        e.ReturnValue = "OK" \'通知申请者可以编辑
    Else \'如果之前登记的编辑者为其他人
        e.ReturnValue = tbrk(Key) & "正在编辑此行!" \'告知申请者是谁在编辑此行
    End If
ElseIf msg1.StartsWith("!#") AndAlso msg1.EndsWith("#!") Then \'收到结束编辑信号
    Dim Key As String = msg1.SubString(2,msg1.Length - 4)
    If tbrk.Containskey(Key)  Then
        tbrk.Remove(Key) \'从集合中移除此行的编辑登记
    End If
End If


[此贴子已经被作者于2016/1/22 18:28:33编辑过]

--  作者:大红袍
--  发布时间:2015/12/17 10:30:00
--  

TryConnectHost 再 ping

 

http://www.foxtable.com/help/topics/2709.htm