易语言这段代码为什么出错?

http://pan.baidu.com/s/1IpIV运行多个客户后点击重连会报错... http://pan.baidu.com/s/1IpIV运行多个客户后点击重连会报错 展开
 我来答
986641838
2013-10-03 · TA获得超过272个赞
知道小有建树答主
回答量:258
采纳率:75%
帮助的人:117万
展开全部
重连报错在于:

点击重连后,假如原来有两个客户,也就是客户数组有两个成员,
计次循环设置循环次数为2,第一次循环n为1
执行第一次循环,服务器断开客户数组[1]保存的客户,这时触发子程序 _服务器1_客户离开
而你的这个子程序内含有删除数组成员的操作,被断开的客户被从数组中删除,这时数组内只有1个成员,而在进行第2次循环时,n为2,这时客户数组没有第二个成员,所以超出下标,报错。

你加了延迟后之所以没错误是因为:
同样,触发 _服务器1_客户离开后删除了成员,但因为你设置了延迟,进程会挂起,这时你的客户端被断开之后再一次执行了连接命令,触发 _服务器1_客户进入 子程序。客户数组再次加入成员,又有了第二个成员,所以不会发生数组下标超出范围的错误,但是这么做,并不是所有客户都被重连,而是只有客户数组的第一个成员被重连两次。

另外关于你的修改端口的问题:
你的客户端连接服务器的永远是固定的8600端口,你的服务器更改端口之后,服务端并不知道,依然连接8600端口,肯定是连不上的。

谢谢,给分。。。。。。
有疑问请加 我的昵称。。。。。
追问

端口问题就是固定的!修改端口后客户端不变,而服务端只显示你更改的端口。

如图效果如何实现?咱们可以私聊吗?你的联系方式是你的用户名?

追答
我的企鹅账号就是我的昵称,加我吧。百度不让说。。。。。。。
明月光dr
2013-10-03 · TA获得超过348个赞
知道小有建树答主
回答量:824
采纳率:59%
帮助的人:209万
展开全部
单纯的这一段代码好像没有什么错误,建议下断点进行调试,或者检查其他代码段
追问
我也没觉得那里出错了!找了很久之前加了个延迟!可以解决但修改端口后就出问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式