急!!关于多线程同步的问题!!!

scourgedk 2009-05-27 02:53:28
用的是INDY里的 IDTCPSERVER;
多个客户端连接,我测试的时候,发现如果一个客户端不停发消息,其他客户端就无法连接上.
客户端并发消息的时候也是如此;
应该是要做个同步处理,网上也查了很多资料;
但是不知道该怎么下手.请达人指点一下到底该怎么做...
...全文
118 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuihan20e 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 scourgedk 的回复:]
我想是不是因为处理消息转发的时候LOCKLIST所以其他无法登录服务器?
如果是该怎么处理..?
[/Quote]
你执行了LOCKLIST,肯定其他客户端就登录不了

可以看下INDY 的DEMO

转发的时候不用LOCKLIST,直接转发就可以

INDY的那个例子有点让人发晕,你只要在操作全局变量时用LOCKLIST就行,其他操作不需要
yuyuhaso 2009-06-04
  • 打赏
  • 举报
回复
1、请在OnConnection中处理登录
2、请注意LockList后服务器是不会创建新的线程的,也就是说这个时候其他用户确实无法登陆
sxy_9761 2009-05-30
  • 打赏
  • 举报
回复
找个Indy自带的demo看一下.
AuroraAlpha 2009-05-30
  • 打赏
  • 举报
回复
LZ最好给一下服务端具体的代码

不要把代码都写在OnExecute里,把IdTCPServer的几个事件都利用好
scourgedk 2009-05-30
  • 打赏
  • 举报
回复
没有大侠来解答一下吗...
scourgedk 2009-05-27
  • 打赏
  • 举报
回复
回LS的 是阻赛模式
INDY的这个控件好像只能阻赛吧
sanguomi 2009-05-27
  • 打赏
  • 举报
回复
你是不是用的阻塞模式?
scourgedk 2009-05-27
  • 打赏
  • 举报
回复
我想是不是因为处理消息转发的时候LOCKLIST所以其他无法登录服务器?
如果是该怎么处理..?
scourgedk 2009-05-27
  • 打赏
  • 举报
回复
还有,考虑到可能同时N台机器消息发过来,客户端的多线程该怎么做...

都是简单的问题,希望大家帮忙

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧