Q&A

  • 에러메시지 가져오기?
안녕하세요?
델파이를 실행해서 서버에 연결시 서버가 다운되거나 연결되지 않는경우엔
soket error #10061 connection refused라는 에러가 보이는데요
이에러를 가로채서 프로그램상에서 이런에러이면 한글로 메시지박스로
보이도록 해주고 싶은데요
어떻게 해야 저런 에러메세지들을 가져올수 있고
또 가져온후엔 어떻게 10061이란 번호를 가져올수 있는지
알려주시면 감사하겠습니다.
1  COMMENTS
  • Profile
    신강섭 2002.09.17 02:44
    WSAGetLastError 를 이용하시면 됩니다.

    아래는 설명입니다.

    WSAGetLastError 함수는 가장 최근에 일어난 실패한 소켓연산의 에러코드를 얻어내는 함수입니다.

    int WSAGetLastError (void);



    Remarks

    WSAGetLastError 함수는 마지막으로 발생한 네트웍 에러를 반환합니다. 특정한 윈도우 소켓이 에러가 발생되면, 이 함수는 그에 적절한 에러코드를 반환하게되죠. 이 에러코드는 getsockopt 함수를 SO_ERROR 옵션으로 호출해서 얻은 에러코드와는 다를 수 있으니 염두해 두도록 하시구요. WSAGetLastError 는 다중쓰레드 어플리케이션이 경우 모든 쓰레드의 소켓에 대해서 동작을 하게 된다는 점두 염두해 두도록 합시다.

    성공적인 소켓 함수의 호출이라든지, WSAGetLastError의 호출은 에러코드를 리셋하지 않습니다. 에러코드를 리셋하고 나중에 다시 사용하기 위해서는 WSAGetLastError 함수를 iError 매개변수를 0으로하여 호출해야 합니다. SO_ERROR 옵션으로 호출된 getsockopt 함수또한 0으로 호출해서 에러코드를 리셋해야만, 다음에 정확한 에러코드를 얻을 수 있다는점! 중요한 부분이니까. 꼭! 꼭! 꼭! 염두해 두도록 합시다.

    그리고 비동기 네트웍 통지 메시지를 받을 때 메시지의 lParam으로 오는 에러값은 WSAGetLastError함수로 얻어낸 에러값과 다를 수 있으므로 이 두 에러값을 비교해서 서로 체크하는 것은 무의미 하다는 것을 또한 염두해 두도록 합시다.



    Return Values

    함수의 반환값은 마지막 윈도즈 소켓 연산의 에러코드를 의미합니다.



    QuickInfo

    Windows NT : 사용가능
    Windows : 사용가능
    Windows CE : 버젼 1.0 그리고 그이후의 버젼에서 사용가능
    Header :
              Win16/32 : winsock.h
              Win32-II : winsock2.h
    Import Library :
              Win16 : winsock.lib
              Win32 : wsock32.lib
              Win32-II : ws2_32.lib

    See Also
    overview, getsockopt, WSASetLastError
    • 김상수
    • 2002.09.17 18:31
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2002.09.17 19:45
      OnDrawColumnCell 이벤트보다는 쿼리나 테이블 컴포넌트의 AfterScroll에 코딩을 하시는게 더 낳을듯합니다...
    • 김상수
      2002.09.17 20:11
      procedure TDM.Query5AfterScroll(DataSet: TDataSet  ); begin   If gdFocused i...
    • 김상수
      2002.09.18 18:42
    • 델사랑
    • 2002.09.17 18:29
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 레인
    • 2002.09.17 14:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2002.09.21 19:31
      초보시라면 설명하기 힘듭니다... 특히 장치설정부분은 show중에서도 어려운 부분에 속합니다. 다만 말...
    • 레인
      2002.10.02 11:38
      님의 답변 우선 감사드립니다.. 저 또한 Sound부분이 어려워 글을 올렸었는데.. 님 말대로 API에서 함 찾...
    • 미소나눔
      2002.09.17 07:35
      palette 에 Dialog 버면은 컴포넌트 있어용.. OpenDialog1.Execute; SaveDialog1.Execute; ^^;
    • 최용일
      2002.09.17 05:53
      안녕하세요. 최용일입니다. 흠~ 텍스트파일이라면.... TStringList를 쓰는것두 나쁘지 않겠네요... v...
    • 스말(^___^)
      2002.09.17 06:49
      안녕하세요? 아래말고 StrList에 미리 데이터를 넣는 작업이 필요한건지여? 제가 초짜라..TStringList를 ...
    • 미소나눔
      2002.09.17 06:58
      파일을 만드셔야죠.. ^^; c:MyData.txt 쩝 ^^;
    • 스말(^___^)
      2002.09.17 07:05
    • 미소나눔
      2002.09.17 07:29
    • 최용일
      2002.09.17 05:56
      안녕하세요. 최용일입니다. 그냥 1분만 셋팅하면 되지 않나요? Interval = 1000 * 60 으로... 타이머...
    • 이종원
    • 2002.09.17 04:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2002.09.17 04:23
      query1.open; 위에 Query1.ParamByName('Name').AsString := Name; 이케 해야되는거 아닌가요? 즐프...
    • 이종원
      2002.09.17 04:30
      감사합니다... 잘되는군요... 다른 질문 하나더 할께요... 일치하지 않는 값을 넣고 검색버튼을 클...
    • KDDG_ZZOM
      2002.09.17 05:10
      그거는 업무에 맞게 처리를 하면 될것같네요... 제일쉬은게 쿼리 오픈했을때 Query1.RecordCount가 0보...
    • goodlsw
    • 2002.09.17 04:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.09.17 06:01
      안녕하세요. 최용일입니다. HTML헬프라면 별달리 설치할게 없습니다. 걍 헬프파일 클릭하면 될테니까요....
    • 최용일
      2002.09.17 06:09
      안녕하세요. 최용일입니다. 쩝~ 폼생성하는 API함수는 CreateWindow인데요... 그런데, 굳이 API로 해...
    • 김영재
    • 2002.09.17 03:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.09.17 06:12
      안녕하세요. 최용일입니다. 메모(TMemo)컴포넌트는 WordWrap속성이 기본으로 True고 라벨(TLabel)컴포넌...
    • 김형환
      2002.09.17 17:49
    • ji
    • 2002.09.17 03:21
    • 0 COMMENTS
    • /
    • 0 LIKES
    • jslove
    • 2002.09.17 03:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.09.17 03:41
      Full로 설치한 후 ...ExamplesAppsThreads에 (C:Program FilesBorlandCBuilder5ExamplesAppsThreads) ...
    • 신강섭
      2002.09.17 03:11
      에디트컴포넌트의 이벤트에서 onkeypress()라는 이벤트를 더블클릭해서 함수를 생성하세요 그런담에 그안...
    • 이성찬
      2002.09.17 03:13
      ex) 0.5   1) #.###  =====> .5      2) 0.### &nb...
    • 박현식
    • 2002.09.17 02:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신강섭
      2002.09.17 03:05
      var      x : _SYSTEMTIME; begin      GetLocalTime(x); &n...
    • 송병석
    • 2002.09.17 02:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조덕진
      2002.09.24 03:57
      API에 대해서는 잘 모르는 허접입니다만, 델파이에 포함된 ShellAPI.pas와 Windows.pas를 보시면 각종 Wi...
    • 신강섭
      2002.09.17 02:44
      WSAGetLastError 를 이용하시면 됩니다. 아래는 설명입니다. WSAGetLastError 함수는 가장 최근에 일...
    • 박승균
    • 2002.09.17 02:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신강섭
      2002.09.17 02:54
      이런말이 도움이 될런지는 모르게씀다 예를 들어 쿼리를 날린다. count := 0; while Not Eof do b...
    • 신강섭
      2002.09.17 02:33
      일단 설치가 완료되셨다면 설치한 컴포넌트의 위치를 델파이한테 등록을 해주어야 합니다. 메뉴->To...
    • 스말(^___^)
      2002.09.17 02:43
      ^________^