Foxtable(狐表)用户栏目专家坐堂 → OpenQQ客户端登录后服务端提示索引超出了数组界限


  共有4449人关注过本帖树形打印复制链接

主题:OpenQQ客户端登录后服务端提示索引超出了数组界限

帅哥哟,离线,有人找我吗?
天若千颖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
OpenQQ客户端登录后服务端提示索引超出了数组界限  发帖心情 Post By:2016/8/31 11:11:00 [只看该作者]

OpenQQ客户端登录后服务端提示:索引超出了数组界限
使用的是内置的身份验证,不知道是怎么回事。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109347 积分:556379 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/8/31 11:13:00 [只看该作者]

服务端登录事件代码贴出来

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/31 11:18:00 [只看该作者]

QQServer.ServerIp = e.Form.Controls("txtIP").Value '指定IP地址
QQServer.ServerPort = e.Form.Controls("txtPort").Value '指定端口
QQServer.HeartbeatInterval = e.Form.Controls("txtInterval").Value '指定心跳时间
QQServer.HeartbeatTimeout = e.Form.Controls("txtTimeOut").Value '指定心跳超时时间
QQserver.Buildin = True '启用内置身份验证
QQServer.Start() '启动QQServer

是这个么?

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/31 11:20:00 [只看该作者]

网络监视器:
UserLogging:
Dim pts() As String = e.UserName.Split(".")
Dim dr1 As DataRow
dr1 = DataTables("用户").Find("部门 = '" & pts(0) & "' And 姓名 = '" & pts(1) & "'")
If dr1 Is Nothing  Then '判断此用户不存在
    e.Message  = "用户名错误!" '返回给登录者的提示信息
    Return
End If
If dr1("密码") <> e.Password Then '如果密码错误
    e.Message  = "登录密码错误!" '返回给登录者的提示信息
    Return
End If
e.Success = True '允许用户登录
'添加所有同事为好友
For Each dr2 As DataRow In DataTables("用户").DataRows
    Dim nm As String =  dr2("部门") & "." & dr2("姓名")
    If nm <> e.UserName Then '如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

ReceiveMessage:
If e.Message = "GetDate" Then
    e.ReturnValue = Date.Now
End If

UserChangPassageword:
Dim pts() As String = e.UserName.Split(".")
Dim dr As DataRow = DataTables("用户").Find("部门 = '" & pts(0) & "' And 姓名 = '" & pts(1) & "'")
If dr Is Nothing  OrElse dr("密码") <> e.OldPassword  Then
   e.ReturnMessage = "原密码不符!"
Else
    dr("密码") = e.NewPassword
    dr.Save()
   e.ReturnMessage = "OK" '返回约定的字符,通知客户端,密码修改成功
End If


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47476 积分:251245 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/8/31 11:21:00 [只看该作者]

错误提示会告诉你出错的事件,然后可以先自己调试分析一下:

http://www.foxtable.com/webhelp/scr/1485.htm

 

 

搞不定在发帖,提出错误提示,并告知是哪一行出错。

 

自己主动动手,尝试去分析和解决问题,这样这样进步会更快。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47476 积分:251245 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/8/31 11:28:00 [只看该作者]

Dim pts() As String = e.UserName.Split(".")
if pts.length < 2 then
     messagebox.show(“用户名格式不对吧,一般是'部门.用户名',你看看这个用户名是什么:" & e.username)
end if

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/31 11:29:00 [只看该作者]

客户端把登录的所有事件都执行完了,返回登录失败的原因,超出规定事件未获得服务器响应。

服务端也正常启动,但是客户端一点击“登录”,就弹出提示:

.NET Framework 版本:2.0.50727.6387
Foxtable 版本:2016.7.29.1
错误所在事件:项目,Server
详细错误信息:
索引超出了数组界限。

然后客户端就返回失败的原因:超出规定事件未获得服务器响应。

这个好像不是代码错误。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109347 积分:556379 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/8/31 11:29:00 [只看该作者]

 dr2("部门") & "." & dr2("姓名")

应该是有重复的数据了,同一部门姓名相同

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/31 11:30:00 [只看该作者]

使用的是内置的身份验证,不需要填写用户名和密码吧?

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/31 11:35:00 [只看该作者]

我直接把客户端登录的窗口的“部门”“姓名”“密码”删除“和输入框都删除了,直接一个服务器IP,端口以及登录按钮,是这个地方错了吗?
难道内置的用户验证这个地方还要再输入一次密码?

 回到顶部
总数 34 1 2 3 4 下一页