多线程读写同一个socket


http://book.77169.org/3933/3933045.htm

 

多个线程可否对同一个套接字进行写操作,例如有一个SOCKET s;两个线程同时向s中写入内容,其中
一个写入为"12",而另一个写入内容为"34",在客户端接收的数据中有没有可能结果为"13","24"???

 

1、多个线程可以对同一socket进行收发,但是要自己进行同步

 

原则上说是有可能的
但是实际上的可能性很小
你可以试试发个长一点的,比如一个发1024字节个'a'
一个发1024字节个'b'
看看收到的a和b是不是分开的

 

不要同时读或者同时写

 

(1) 不会出现 13 ,24 这样的情况的
第一个线程send,会产生一个tcpid之类的东东,即使发送到一半,控制权给了线程2,线程2send后又有自己的tcpid,据TCP/IP协议,最后IP重组后得的数据依然还是 12 ,34

 

select/ epoll  会不会保证socket读写的同步??


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM