VB多客户端通讯的问题

redshiliu 2010-10-30 05:56:42
现在正在做一个小项目,大体有500左右各客户端通过tcp/ip连接至服务器端,
服务器端这边是这样的:
给每个客户端建立一个数据接收缓存(byte()),有数据到来就添加到缓存中用一个Long变量CacheLength来记录缓存长度。
然后用timer控件轮询每个客户缓存,然后进行处理,然后相应的修改CacheLength,但是有个问题,有时在处理数据时耗费的时间多了一些,socket那边又接收到数据,并且修改了CacaheLength,然后我这边才完成处理再度修改了CacheLength,这就来了问题了,怎么解决?或者有没有更好的解决方法?
...全文
38 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dejigiekjief 2010-10-30
  • 打赏
  • 举报
回复
对了 就是叫那个什么来着
信号量
dejigiekjief 2010-10-30
  • 打赏
  • 举报
回复
二楼正解
就是数据库和操作系统的临界资源的问题撒~
修改数据前看有没有进程等在读数据
如有有读 则等待
PV操作就行了
lxq19851204 2010-10-30
  • 打赏
  • 举报
回复
............
咸清 2010-10-30
  • 打赏
  • 举报
回复
那你能不能设计成跟数据库一样,正在操作的部分加一个锁呢~~
或者,你设计一个标号,指向正在处理的数据,socket那边又接收到数据,并且尝试修改了CacaheLength的时候先判断标号当前是不是指向正在处理的数据,是的话先放在缓存里,处理完之后再……
不知道是不是说清楚了~~

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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