지정된 네트워크 이름 사용불가, 겹친 IO작업 진행중

241 views
Skip to first unread message

^_^

unread,
Oct 9, 2005, 11:48:42 AM10/9/05
to kaug
안녕하세요. ^_^
얼마전 Acceptor에서 open()시 Connector에게 성공적으로
메시지를
보냈습니다. 빰~~빠~~라~~밤~~~ 추카 추카 ^_^

이것에 고무되 Connector에서도 open()시 Acceptor에게
메시지를
보내봤습니다.

각 open()시 메시지를 보낸 Connector의
ACE_Asynch_Write_Stream::
의 Write() 에서 '지정된 네트워크 이름을 더 이상
사용할 수 없습니다'
라는 메시지가 뜨구요.

메시지를 받는 Acceptor의 ACE_Asynch_Read_Stream::read()에서는
'겹친 I/O 작업이 진행중입니다라는 메시지가
뜨더군요.

바로 그냥 어깨가 추~~욱, 한 숨 푸~~~욱,
넉은 쑤~~욱, 마음을 꿀꿀
이건 어떤 경우에 발생하는 메시지인지...

여기에 다행인지 불행인지 반대로 Connector open()에서
보내는
코드를 Acceptor의 open()에 붙이고 Acceptor의 읽는 코드를
Connector에 붙이면 아무 이상 없이 메시지가 갑니다.

즉 ACE_Service_Handler::open()시
Acceptor에서 Connector로 보내는건 이상이 없는데
Connector에서 Acceptor로 보낼때는 이상이 발생한다.

ACE_Service_Handler::open()시면 이미 연결이 허용된 후라
Connector라고 메시지를 못 보낼 이유는 전혀 없는거
같은데...
예제소스에서도 open()시 서로 주거니 받거니
다정스런(?)
모습을 보이던데...

음.......................................

그럼 항상 행프하시길... ^_^

^_^

unread,
Oct 13, 2005, 5:13:19 PM10/13/05
to kaug
안녕하세요. ^_^
'겹친 IO작업 직업중'(Overlapped I/O operation is in progress.)
ACE_OS::last_error()의 반환 값 997 ERROR_IO_PENDING.

Proactor가 비동기 방식이기 때문에 읽기나 쓰기 명령시
완료가
되지 않은 상태에서 충분히 반환될 수 있죠.

하지만 제가 의아한것은 현재 1:1 연결에, 주고 받는
횟수 딱 1회,
주고 받는 데이터 양도 10여 바이트 밖에 안 되는데
Connector에서 전송시 왜 이렇게 자주 ERROR_IO_PENDING이
발생하는지 잘 모르겠습니다.

ERROR_IO_PENDING이 그렇게 흔한 경우인가요?
소켓 I/O를 계류시키는 요인들로는 어떤 것들이
있을까요?

그럼 항상 행프하시길... ^_^

Reply all
Reply to author
Forward
0 new messages