150台左右的局域网要求简单的数据传递(用S/C),后生真心求教,望先生不辞辛劳。 我也在做这方面的试验,你的问题也是我正在头疼的,我也还没有找到解决方法。不过我还有一个补充问题:怎样在server端确认某一台client端? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还不如用UDP协议,不要连接,就可以直接传送,这样就可以避免所有你提到的问题1。 验证Server/Client的开关。 在UDP中,只要向本网段发,用x.y.z.255做目标地址,就可以。全网段都会收到。 所以: Server端加一条初始命令和一条响应命令 比如:[00]Hello! [02]Still Alive! Client端加一条初始命令和一条响应命令 比如:[01]I am Borning! [03]Still Alive! 其中无论谁先启动都向本网段发送初始命令,在运行中如果收到其他计算机发来的初始命令就将它的FromIP补到本地“存活机器”列表中,在向其发送相应命令。在运行中如果收到其他计算机发来的响应命令,就将它的FromIP补到本地“存活机器”列表中。 如果此种服务是不紧密的,那么,服务器可以通过即时发送[00]Hello!来验证谁在;如果是紧密的,则双方补充一条[04]Goodbye!来使得对方将自己从“存活机器”中抹掉。2 因为UDP是非连接型的,所以理论上可以同时为无限多的客户服务。 我曾用过UDP书写聊天程式,在同学60个线程x2台计算机的轰炸下照样工作(这里引用的是合法数据,也就是合乎内部协议,程序必须处理的)只是较慢。对,在大量数据报冲击下,会丢失数据(不是一次通讯的数据畸变,而是丢失n次)。所以,对每项独立任务要有验证,当某部分缺失,应该要求重发那部分,这要求你的语法中能指明重发的段。计算端口流量,当其过大时,对新的服务申请做出[xx]Busy!什么的回答。客户端收到Busy,则启动定时器再试,3次不过,就报告失败。这样如何?如有问题,可直接mailto:[email protected] http://www.csdn.net/soft/openfile.asp?kind=1&id=9726下载一个试用。 Asynchronous socket error 10061可以捕获的!uses ScktComp; ~~~~~~~~~有个函数,SetErrorProc,注册你的异常处理函数,这样就不会有严重错误的对话框弹出。比如你自己的出错处理函数定义为:procedure MyErrorDealProc( ErrorCode: integer );begin case ErrorCode of .... End;end;则在你的程序里面调用注册: SetErrorProc( MyErrorDealProc );OK! 帮写个函数调用 delphi2007中调用数据库,但不想用Access,怎么办? delphi中声明类 文本文件如何定位文件的读写位置,seek函数如何使用 如何判断SPEEDBUTTON等的GLYPH属性是否登陆了位图,,还是默认的NONE 他奶奶的,气死我了! 一个简单的编码问题? DELPHI巨搞笑问题!!!!!!!!!!!!!!! 关于Delphi程序的源代码问题 关于table的index问题,如果有谁是这方面的高手,请赐教 ADOQuery的参数问题。 300分求助:1.怎样用BDE动态改变DBASE数据库的表结构,Bdi?2.怎样在DBASE数据库中真真地插入一条记录?
这样就可以避免所有你提到的问题
1。 验证Server/Client的开关。
在UDP中,只要向本网段发,用x.y.z.255做目标地址,就可以。全网段都会收到。
所以:
Server端加一条初始命令和一条响应命令
比如:[00]Hello!
[02]Still Alive!
Client端加一条初始命令和一条响应命令
比如:[01]I am Borning!
[03]Still Alive!
其中无论谁先启动都向本网段发送初始命令,在运行中如果收到其他计算机发来的初始命令
就将它的FromIP补到本地“存活机器”列表中,在向其发送相应命令。在运行中如果收到其他计算机发来的响应命令,就将它的FromIP补到本地“存活机器”列表中。
如果此种服务是不紧密的,那么,服务器可以通过即时发送[00]Hello!来验证谁在;如果是紧密的,则双方补充一条[04]Goodbye!来使得对方将自己从“存活机器”中抹掉。
2 因为UDP是非连接型的,所以理论上可以同时为无限多的客户服务。
我曾用过UDP书写聊天程式,在同学60个线程x2台计算机的轰炸下照样工作(这里引用的是
合法数据,也就是合乎内部协议,程序必须处理的)只是较慢。
对,在大量数据报冲击下,会丢失数据(不是一次通讯的数据畸变,而是丢失n次)。所以,对每项独立任务要有验证,当某部分缺失,应该要求重发那部分,这要求你的语法中能指明重发的段。
计算端口流量,当其过大时,对新的服务申请做出[xx]Busy!什么的回答。客户端收到Busy,则启动定时器再试,3次不过,就报告失败。这样如何?
如有问题,可直接mailto:[email protected]
下载一个试用。
可以捕获的!
uses ScktComp;
~~~~~~~~~有个函数,SetErrorProc,注册你的异常处理函数,这样就不会有严重错误的对话框弹出。比如你自己的出错处理函数定义为:procedure MyErrorDealProc( ErrorCode: integer );
begin
case ErrorCode of
....
End;
end;则在你的程序里面调用注册:
SetErrorProc( MyErrorDealProc );OK!