首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请教socket客户端连接服务器时的错误处理
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangyou1010
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 17:27:02 楼主
    我是用TClientSocket和TServerSocket控件实现的简单C/S通信,非阻塞方式,server端程序开始运行时serverSocket就开始监听直到程序退出,client端一开机就运行且每隔一段时间向server发送数据,最后一次发送数据的时间保存在server端的数据库中,所以client每次开机运行时都发一个命令给server,让server发回保存在数据库中的时间。

    请问:如果client端先运行,而server端没开机或其他原因没有监听,这时肯定会触发client端的OnError事件,我想在OnError事件中让client每隔半个小时去连一次server,如果连接成功则发请求给server,如果连接不成功则继续等。

    另外:client给server发送数据时,发送过程中可能出现的异常该如何处理。

    谢谢。
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangyou1010
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 08:52:591楼 得分:0
    高手请进。分少了可以再加。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangyou1010
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 14:24:002楼 得分:0
    谢谢各位。大概有想法了,在OnError中对错误码做处理,因为如果服务器没监听,ErrorCode=10061 ,在OnError里面用while循环,如果errorCode=10061,就不断循环,在循环里面sleep();然后再去active=true ;
    .
    不知这样做又什么问题没? 不过在测试过程中基本要求还是达到了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • songhtao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      2

    发表于:2008-08-20 14:51:003楼 得分:0
    祝贺你解决问题.
    不过循环改为定时器控制可能更好.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangyou1010
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 16:35:094楼 得分:0
    哈哈,终于有人进来了,我会试试定时器的,谢谢songhtao 。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhgwbzhd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 22:29:245楼 得分:0
    反正你要定时和服务器通讯,还是定时器好。
    死循环比较浪费资源。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved