问题描述
一个小程序用到了system.net.socketssocket创建连接后,先send,然后receive再send,再receive没有问题现在想改成两个线程来执行任务,一个线程负责send,一个负责receive哪位高手能给个demo呀,谢谢了。
解决方案
解决方案二:
http://www.codeproject.com/search.aspx?q=socket+vb.net&doctypeid=1%3b2%3b3%3b13%3b14&pgsz=10
解决方案三:
DimSAsSocketDimthrRecvAsThreading.ThreadPrivateSubRecv()DoDimb(1023)AsByteS.Receive(b)BeginInvoke(Sub()'UI线程的代码EndSub)LoopEndSubPrivateSubSend(ByValdata()AsByte)S.Send(data)EndSubPrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.ClickthrRecv=NewThreading.Thread(AddressOfRecv)thrRecv.Start()Send(NewByte(){1,2,3,4})EndSub
解决方案四:
引用楼主spark_li的回复:
一个小程序用到了system.net.socketssocket创建连接后,先send,然后receive再send,再receive没有问题现在想改成两个线程来执行任务,一个线程负责send,一个负责receive哪位高手能给个demo呀,谢谢了。
没有必要修改。
解决方案五:
客户端程序访问服务器,本来就可以是sendreceive.......sendreceive
的顺序处理。你改为“脑裂”的两个线程,有什么必要画蛇添足呢?
解决方案六:
以#2楼的代码为例,他只写了一次send的代码。假设按照你的描述,有2次或者2次以上send操作,那么你send之后就要等待receive之后,才开始下一次send,然后等待第2次receive之后才开始第3次send。那个代码中并没有这个设计!实际上,真要是设计出来了,看明白代码也发现画蛇添足。