델마당에서 답을 못 구해서 경문님 홈피까지 왔습니다.


델마당에서만 뵙다가 물어물어 여기까지 오는 도중 본의 아니게 좋은 곳으로 들어가서

눈요기 좀 했습니다 ㅎㅎ(gilgil.co.kr).


경문님이 네트웍 프로그램에 있어서는 델파이계에서 지존임을 익히 알고 있는지라 경문님께서는

이미 해답을 찾으셨을 줄로알고 여쭤보고 답을 못 구하면 다른 방법을 찾을까 합니다.

 

문제는 이번에 IPv6로 연결해야 하는 사이트가 생겼는데 인디 소켓 최종 버젼(10.5.8.0)에서도 에러가 납니다

구글링해봐도 같은 내용이 아닌 IdTCPServer Socket의 IPv6문제를 다루는 내용 조차 별로 없더군요.


일단 Listening까지는 잘 돼서 Data를 읽으면 


  (Context.Connection.IOHandler.ReadBytes(RxDATA, 4, False) )

  "Socket Error : 10054 - Connection Reset by peer" 라고 Exception Message를 밷어 냅니다.



function TIdStackWindows.WSRecv(ASocket: TIdStackSocketHandle; var ABuffer;

  const ABufferLength, AFlags: Integer) : Integer;

begin

  Result := recv(ASocket, ABuffer, ABufferLength, AFlags);  <<<<<================= 여기서 데이터를 못 읽고 -1을 반환합니다.

  {$IFDEF IGNORE_KB971383_FIX}

  if Result = -1 then begin

    Result := recv(ASocket, ABuffer, ABufferLength, AFlags);

  end;

  {$ENDIF}

end;



혹시 해결방법이 있으시다면 제발 힌트만이라도 주시면 감사하겠습니다.