完成端口是异步进行的。这样会不会出现下面的问题:
一个线程调用WSARecv()函数,并对扩展的OVERLAPPED结构即OVERLAPPEDPLUS的其余部分内容进行改写,比如把一个标志字节改为RECV.
同时另一个线程调用WSAsend(),并把OVERLAPPEDPLUS的标志字节改写为SEND.
由于两个线程用的是同一个OVERLAPPEDPLUS结构,这样会不会引起混乱呢?
如果我用send()呢?GetQueuedCompletionStatus()能捕捉到它吗?
一个线程调用WSARecv()函数,并对扩展的OVERLAPPED结构即OVERLAPPEDPLUS的其余部分内容进行改写,比如把一个标志字节改为RECV.
同时另一个线程调用WSAsend(),并把OVERLAPPEDPLUS的标志字节改写为SEND.
由于两个线程用的是同一个OVERLAPPEDPLUS结构,这样会不会引起混乱呢?
如果我用send()呢?GetQueuedCompletionStatus()能捕捉到它吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货