两个线程使用同一socket的问题 一个线程通过使用CSocket对象的指针来接收数据之后,把该CSocket对象的句柄传给另一线程,另一线程通过该句柄来发送数据(发送数据的时候,另一个线程可能在接收数据)我的问题是:1。首先,这样做可不可以2。如果可以的话,要不要同步,要注意哪些问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的意思是这样的线程模型:一个接收线程,一个处理线程(发送数据在此线程中)接收线程接收数据用的是CSocket对象的指针,处理线程发送数据用的CSocket对象的socket句柄(这个句柄是接收线程传过来的)。现在的问题是两个不同的线程,接收数据用指针,发送数据用句柄,发送和接收动作可能同时进行,我这样操作socket可不可以? 在线程间传递CSocket*是有问题的。 http://support.microsoft.com/default.aspx?scid=kb;en-us;175668 看是否破坏你的缓冲区(指你自己建的)啦,可能需要同步,这个你自己去判断吧。这种做法理论上说是可以的,但如果你的机器有两个cpu,可能会出现问题。 上次看到一帖子,说:两个线程对同一个Socket,分别进行收发,不加锁的话,没有问题。http://community.csdn.net/Expert/TopicView3.asp?id=4284765 同意fisker0303在多CPU下如果没有做好同步,很有可能出问题 用CSOCKET来进行多线程操作,肯定是个灾难,当初搞这个CSOCKET多线程,让我吃够了苦头,到现在我都不在使用MFC封装的SOCKET了。 用CSocket的话基本上没必要开线程去访问网络了,所有的读写都在主界面完成。 1. 你是一个线程使用CSocket 一个线程使用 socket句柄. 这是可以的.只是不要在2个线程间共享一个CSocket就行了 2. 发送 和 接收 可以同时进行. 但是不要 2个线程同时发送 或者同时接收, 这会产生不可知的结果. 共同研究MyICQ SkinMagicLib.lib是否支持vc.net编程? mfc 的编辑框中怎么显示系统的当前时间啊 VC高手群:16054973 MFC与API ***建议版主能开一个VC API小类,支持的就顶一下吧!!!******* 多工程问题:如何在一个的工程文件中引用另外一个工程的成员函数 母亲节,一起来祝福! 如何实现图形文档的保存 SVN的Blame异常求助,实在没地方发了,还是发自己喜欢的MFC区吧 知道这里高手如云,我在别的版快提了一个问题 大家看看 请问想做一个类VC的界面,树状控件是放在CFormView里吗?
线程模型:一个接收线程,一个处理线程(发送数据在此线程中)
接收线程接收数据用的是CSocket对象的指针,处理线程发送数据用的CSocket对象
的socket句柄(这个句柄是接收线程传过来的)。
现在的问题是两个不同的线程,接收数据用指针,发送数据用句柄,发送和接收动作
可能同时进行,我这样操作socket可不可以?
这种做法理论上说是可以的,但如果你的机器有两个cpu,可能会出现问题。
两个线程对同一个Socket,分别进行收发,不加锁的话,没有问题。http://community.csdn.net/Expert/TopicView3.asp?id=4284765
在多CPU下如果没有做好同步,很有可能出问题
肯定是个灾难,
当初搞这个CSOCKET多线程,让我吃够了苦头,
到现在我都不在使用MFC封装的SOCKET了。
这是可以的.只是不要在2个线程间共享一个CSocket就行了 2. 发送 和 接收 可以同时进行. 但是不要 2个线程同时发送 或者同时接收, 这会产生不可知的结果.