双cpu.
两个线程并行执行下面的语句
Index=WSAWaitForMultipleEvents(m_iSocketCount,m_EventArray,FALSE,WSA_INFINITE,FALSE);会不会有问题?1 如果两个线程同时阻塞在这个语句上.此时,同时有100台机器发过数据包来,会有什么问题.2 两个并行的线程真正同时在一个套接字上发送数据,send(hSocket,...)会不会有问题
两个线程并行执行下面的语句
Index=WSAWaitForMultipleEvents(m_iSocketCount,m_EventArray,FALSE,WSA_INFINITE,FALSE);会不会有问题?1 如果两个线程同时阻塞在这个语句上.此时,同时有100台机器发过数据包来,会有什么问题.2 两个并行的线程真正同时在一个套接字上发送数据,send(hSocket,...)会不会有问题
GetQueuedCompletionStatus函数.可能你这样的方式会出问题的.
发送消息时:在同一个socket上多线程send必须进行同步,否则会出问题。
我觉得只要不是几十个cpu,单个线程waitfor之后recv 和 多个线程waitfor recv是一样的,
因为recv不会阻塞,仅仅是一个内存拷贝。看来只好用两个线程分别处理不同的socket组了。
至于send,就同步一下,每次send前,先锁一下这个socket对应的互斥锁。