现在用vb做socket编程,考虑到多个客户端向服务器端发送数据,因为在客户端分过包,现在担心的是在服务器端如果同一时刻收到N个包,会不会造成换成区溢出,即使溢出。需不需要考虑这个问题。是不是只与内存有关,我们不需考虑缓存,很乱,请大家帮忙,不胜感激!!
解决方案 »
- 紧急问题:“运行时错误’0’”
- 程序中,如何打开treeiew并选中节点?
- 关于虚拟鼠标键盘事件遇到的小问题
- 请问在WindowsMediaPlayer控件中怎么更改他的visualizations
- 进程的调用造成的存储分配中遇到的问题??来者有分
- [求助]程序显示问题.................
- 怎么让 win7支持 Microsoft Speech SDK 5.1
- ****请各位推荐好一点的日历控件!***
- 身份证号码——地区对照表问题解决ivt fbwt() cjlong领分
- ◎◎◎◎◎怎样才能实现远程Windows注册表的编辑?◎◎◎◎◎
- 含泪跪求FTP的问题,再解决不了没脸混下去了,分不够我再加
- 数字型数据在导入Excel时如何能变成文字型啊
WINSOCK在TCP方面能很好的处理这个问题,UPD没试过,估计应该也一样.
但关键是程序员是否为每个相应的对应的连接端口和IP是否有独立开一个处理过程..
比如:TCP_接收数据 处理模块
'单用户机制:dim a as string
'多用户机制:dim a() as string
end 模块
要考虑的是每个处理过程不用的用户数组概念的问题.
'传送信息1.'传送信息2.'传送信息3.
end 模块在此过程,除非完全进入end 或exit 模块,否则WINSOCK将不发送信息...
像这种情况,只传送一次信息就EXIT或END模块的话,WINSOCK是马上发回信息的.TCP_接收数据 处理模块
'传送信息1.
end 模块
'客户端定义一个数组变量.(不要在服务器端用这样的变量,服务器端用的话,要多用户的数组变量)接收模块
td()=CStr(td())&CStr(新接收到的数据)'进入检测,比较是否达到一定的字节量.END 模块
'进入检测,比较是否达到一定的字节量.
的部份改成用TIMER来控制,即:
接收模块
td()=CStr(td())&CStr(新接收到的数据)'timer事件=trueEND 模块如果直接进入检测,在END模块之前,程序可能会未有任何响应,比较不继续接收下一段数据包什么的.
但如果启用TIMER事件的话,它就会直接结束这个模块.
而且,别指望用VB去实现你的多线程技术,常让你哭笑不得摸不着头.既然你用了VB去实现它.那你就忍受VB的不满吧.你说的慢,估计不太可能,每次传送的字节有多少K?