더북(TheBook)

구체적인 예를 알아봅시다.

void OverlappedSocketOperation()
{
  // ➊
  var overlappedSendStatus;
  // ➋
  (result, length) = s.OverlappedSend(
      data,
      overlappedSendStatus);
 
  if (length > 0)
  {
      // 보내기 성공 ➌
  }
  else if (result = = WSA_IO_PENDING)
  {
      // Overlapped I/O가 진행 중 ➍
      while (true)
      {
          (result, length) =
              GetOverlappedResult(s,
                  overlappedSendStatus); // ➎
          if (length > 0)
          {
              // 잘 보냈다. ➌
          }
          else
          {
              // 아직 I/O pending이다.
          }
      }
  }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.