I am working on a winsock applications that utilize IOCP and AcceptEx() winsock extension. Basically, the program is a client/server and can send and receive data. Here is the program.

- server activates IOCP and AcceptEx() listening on port 1000
- client activates IOCP and AcceptEx() listening on port 1000
- server sends a package to client (server -> data -> client)
- server processes incoming socket from AcceptEx().

At this point, the incoming data is valid. Everything looks good and valid. I tested this via sending of ASCII test. Everything looks valid.

- client process the data and sends data back to server (client -> data -> server).

For some reason, the server never receives the data. IOCP acknowledged the WSASend() post. It even returns the size of the packet. However, the server never receives the packet.

At this point, I have no idea what is causing the problem. At any given time, both client and server can make NEW connections and send data with the initial packet. However, once the other side receives the incoming connection, processes data, and sends back a response, the response DOES NOT arrive.

Please post if you have any idea as to what is causing this problem. I am not too familiar with AcceptEx() in terms of any specific API that must be called once a socket has been accepted. I did implement setsockopt().