我现在要做一个网络通讯实时接收数据的软件,客户端有80台,服务器端准备用indy的TIDTCPServer。但是我以前没有做过这方面的开发,所以在经验上还有很多的不足,并且现在时间很急,想请高手帮忙解答。据说TIDTCPServer是阻塞式多线程的,针对一个客户端连接就在服务器端建立一个线程,并且据说封装的相当好。
但是我有一个问题不太明白,就是多个客户端连接到TIDTCPServer组件上之后,在服务器端要建立多个线程,那么TIDTCPServer.OnExecute事件是不是也是多个呀?
是不是每个连接的OnExecute事件都是互相独立的?还是所有连接都公用一个OnExecute事件呀??
如果是所有连接公用一个OnExecute事件,那么数据分析会不会冲突呢??不知道我的意思描述清楚了吗,我是第一次接触indy的TIDTCPServer,请大家不要见笑。多谢指导!!
我的QQ:253120114,请高手加入我的QQ,咱们具体可以在QQ详谈!!期待你们加入!跪求
解决方案 »
- 如何判断线程实现完毕
- Windows下文件备份到磁带,是否和访问磁盘一样呢
- 如何用Delphi编程实现Sql2000数据库中主从数据表的导出与导入??
- 请问怎样进行远程开机关机??
- 【请教高手】:如何设置工作区(WorkArea)大小?分不够再加^_^~~!!!!
- 如何得到键盘输入的ascii码
- 我怎么让一个实数保留两位小数,并且这样子。。。。。下面
- 怎样判断数据库中一个日期的后30天的日期是多少呢?
- install source中的.pas,出现这样的错误,请帮忙看看
- 软件工程的一个问题?(送分尽快揭帖)
- 最近要搞WORD电子签名,没搞懂原理
- 调用winsock api出现access violation 错误
1、就是,假设有100个客户端同时向服务器发送数据,而OnExecute事件是接收数据后写到全局的Buf里面。那不是这100个客户端同时来执行OnExecute这一个代码了吗???这样同时向全局buf写数据,会不会冲突呢。这个怎么处理???
2、假设第一个连接发送数据比较大,那么第一个连接触发了OnExecute事件正在处理数据还没处理完呢,此时又有几连接向服务器发送数据了,还会及时触发OnExecute事件呢?还是等第一个连接处理完数据后,其他连接才触发这个Onexecute事件。
如果一定存在可能冲突的东西,使用临界区等方式来互斥并发冲突.
2,因为是多线程,一个OnExecute在执行中,其它的OnExecute还是能够触发的.