티스토리 뷰
ACE_Asynch_Write_Stream은 Proactor에서 패킷을 보내는데 사용되는 클래스 입니다. 3개의 메소드로 구성되어 있습니다.
- int open(...) : 초기화 함수. HA_Proactive_Service 를 첫번째 인자로 넣어주면 됩니다.
- int write(...) : Send 함수. Message_Block과 보낼 길이를 인자로 넣습니다.
- int writev(...) : write 함수와 비슷한데, Linked List로 구성되어 있는 Message_Block을 한방에 주욱~ 보내줍니다. 이전 write에 대한 complete가 떨어지지 않은 상태에서 write요청이 들어오면 List로 구성해놓았다가(Message_Block의 cont 메소드) completion이 떨어지면 한방에 보내는 식으로 구성하면 편리합니다.
write() 메소드의 반환값
- 0 : 성공(pending IO)
- -1 : 실패
pending IO는 아직 완료되지 않았다는 의미인데, Proactor(IOCP)에서는 성공으로 간주됩니다.
writev() 함수의 반환값
- 1 : 바로 성공
- 0 : 성공(pending IO)
- -1 : 실패
바로 성공 했더라도 completion handler(handle_write_stream)는 여전히 불립니다.
[출처] http://javawork.egloos.com/2154843
'Development' 카테고리의 다른 글
[Linux] /usr/bin/ld: cannot find -lz 에러 (0) | 2015.11.05 |
---|---|
[Java] String , StringBuilder, StringBuffer (0) | 2015.10.19 |
[Javascript] 함수 존재여부 체크 (0) | 2015.10.07 |
[Javascript] javascript ===, ==, >=, <=연산자 (0) | 2015.10.07 |
[Spring] spring data redis 의 java.lang.ExceptionInInitializerError (0) | 2015.07.27 |
댓글
최근에 올라온 글
글 보관함
- Total
- Today
- Yesterday