IOCP突然理解不了了,这是一段很基础的IOCP代码,是有回显功能的(WSASEND),哪位高手俩帮小弟我把WSASEND去掉

IOCP突然理解不了了,这是一段很基础的IOCP代码,是有回显功能的(WSASEND),谁俩帮我把WSASEND去掉。
#include <winsock2.h> 
#include <windows.h> 
#include <stdio.h> 
#pragma comment(lib,"Ws2_32.lib")
#define PORT 5000
#define DATA_BUFSIZE 8192 

typedef struct 

  OVERLAPPED Overlapped; 
  WSABUF DataBuf; 
  CHAR Buffer[DATA_BUFSIZE]; 
  DWORD BytesSEND; 
  DWORD BytesRECV; 
} PER_IO_OPERATION_DATA, * LPPER_IO_OPERATION_DATA; 


typedef struct  

  SOCKET Socket; 
} PER_HANDLE_DATA, * LPPER_HANDLE_DATA; 


DWORD WINAPI ServerWorkerThread(LPVOID CompletionPortID); 

void main(void) 

  SOCKADDR_IN InternetAddr; 
  SOCKET Listen; 
  SOCKET Accept; 
  HANDLE CompletionPort; 
  SYSTEM_INFO SystemInfo; 
  LPPER_HANDLE_DATA PerHandleData; 
  LPPER_IO_OPERATION_DATA PerIoData; 
  int i; 
  DWORD RecvBytes; 
  DWORD Flags; 
  DWORD ThreadID; 
  WSADATA wsaData; 
  DWORD Ret; 
printf("服务器准备好,等待接入客户端:\n");
  if ((Ret = WSAStartup(0x0202, &wsaData)) != 0) 
  { 
  printf("WSAStartup failed with error %d\n", Ret); 
  return; 
  } 

  // Setup an I/O completion port. 

  if ((CompletionPort = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0)) == NULL) 
  { 
  printf( "CreateIoCompletionPort failed with error: %d\n", GetLastError()); 
  return; 
  }
  // Determine how many processors are on the system. 

  GetSystemInfo(&SystemInfo);
   

  // Create worker threads based on the number of processors available on the 
  // system. Create two worker threads for each processor. 

  for(i = 0; i < SystemInfo.dwNumberOfProcessors * 2; i++) 
  { 
  HANDLE ThreadHandle; 

  // Create a server worker thread and pass the completion port to the thread. 

  if ((ThreadHandle = CreateThread(NULL, 0, ServerWorkerThread, CompletionPort, 
  0, &ThreadID)) == NULL) 
  { 
  printf("CreateThread() failed with error %d\n", GetLastError()); 
  return; 
  }
  // Close the thread handle 
  CloseHandle(ThreadHandle);
 

  } 

  // Create a listening socket 

  if ((Listen = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, 
  WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET) 
  { 
  printf("WSASocket() failed with error %d\n", WSAGetLastError()); 
  return; 
  }  

  InternetAddr.sin_family = AF_INET; 
  InternetAddr.sin_addr.s_addr = htonl(INADDR_ANY); 
  InternetAddr.sin_port = htons(PORT); 

  if (bind(Listen, (PSOCKADDR) &InternetAddr, sizeof(InternetAddr)) == SOCKET_ERROR) 
  { 
  printf("bind() failed with error %d\n", WSAGetLastError()); 
  return; 
  } 

  // Prepare socket for listening 

  if (listen(Listen, 5) == SOCKET_ERROR) 
  {