C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[39646] [질문]Connect 시간 조정
왕초보 [] 920 읽음    2005-03-27 21:14
소켓통신을 하는데 해당 Ip가 없거나 잘못설정이 되 있을때 Connect를 하는데 1개당 20초 정도 걸립니다.
Connect 하는데 시간을 설정할수 있나요?  1초정도 연결이 안되면 강제적으로 다음으로 넘어가게
할려고 하거든요.

어느 소스를 보니까  WSAAsyncSelect를 이용한것이 있어서 아래처럼 해보니까 IP가 잘못되어 있어도
무조건 Connect 된것으로 표시가 됩니다.
아시는분 자세하게 부탁드립니다.

cli[n]는 stClient 구조체의 객체입니다.  [n = 0 ~ 99]
int cSockUtil::connect_sock(char *szipaddr, int nport, int n) // nport는 소켓포트
{
    int nret;
    char m_szDebugBuf[1024];

    cli[n].cli_sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    cli[n].cli_addr.sin_family = AF_INET;
    cli[n].cli_addr.sin_addr.s_addr = inet_addr(szipaddr);
    cli[n].cli_addr.sin_port = htons(nport);

    nret = WSAAsyncSelect(cli[n].cli_sock, frmMain->Handle, NULL, FD_CONNECT);
    if(nret == SOCKET_ERROR)
        return -1;

    if((nret = connect(cli[n].cli_sock, (LPSOCKADDR)&cli[n].cli_addr, sizeof(cli[n].cli_addr))) == 
                 SOCKET_ERROR )
    {
        if((nret = WSAGetLastError()) == WSAEWOULDBLOCK)
        {
            sprintf(m_szDebugBuf, "Connection From: %s", inet_ntoa(cli[n].cli_addr.sin_addr));
            ShowMessage(m_szDebugBuf);
        }
        else
            return -1;
    }
   
     return cli[n].cli_sock;
}

+ -

관련 글 리스트
39646 [질문]Connect 시간 조정 왕초보 920 2005/03/27
39690     Re:[질문]Connect 시간 조정 juppie 1038 2005/03/30
39648     Re:[질문]Connect 시간 조정 1044 2005/03/27
39658         Re:Re:[확인] Connect 시간 조정 왕초보 925 2005/03/28
39656         Re:Re:[감사합니다]Connect 시간 조정 ( 좀더 자세히 부탁드려요.) 왕초보 895 2005/03/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.