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
[62370] Re:socket에서 local port bind 후 연결이 않되요.. ???
nansama [] 1514 읽음    2010-09-08 15:05
님의 소스는 Winsock API 함수와 ClientSocket 콤포넌트의 퓨전이네요
socket () 함수로 소켓생성을 안해서 10038 메시지가 나온 거구요...
Winsock API를 안쓰면 다음의 4줄로 대체 하시면 그냥 접속 할겁니다.

    ClientSocket1->ClientType = ctBlocking;
    ClientSocket1->Address = "127.0.0.1";
    ClientSocket1->Port = 20000;
    ClientSocket1->Active = true;

김봉재 님이 쓰신 글 :
: 소스는 아래와 같습니다.
: 서버는 포트 20000에서 listen 중이구요...
: 클라이언트는 자신의 포트를 6010으로 설정(bind)하고 서버에 연결(connect)을 하는 프로그램입니다.
:
: 근데, 연결을 시도하면 계속 10038 (소켓 아님..) 에러가 나네요...
:
: VC++에서 사용하던 코드를 조금 수정했습니다.
:
: 빌더로는 소켓을 처음 쓰는데.. 잘안되네요...
: ------------------
: sockaddr_in Addr = {0};
: Addr.sin_family = PF_INET;
: Addr.sin_addr.s_addr = INADDR_ANY;
: Addr.sin_port = htons(6010);
: bind(ClientSocket1->Socket->SocketHandle,(sockaddr*)&Addr,sizeof(Addr));
:
: struct sockaddr_in To={0};
: To.sin_family=PF_INET;
: To.sin_port=htons(20000);
: unsigned long nAddr=inet_addr("127.0.0.1");
: To.sin_addr.S_un.S_addr=(int)nAddr;
: if(connect(ClientSocket1->Socket->SocketHandle,(struct sockaddr*)&To,sizeof(struct sockaddr)))
: {
:       char szTmp[200];
:       sprintf(szTmp,"Failed to connect the object!,error no:%d",::WSAGetLastError());
:     ::MessageBox(0,szTmp,"Error",MB_OK+MB_ICONERROR);
:     closesocket(ClientSocket1->Socket->SocketHandle);
:     ::WSACleanup();
: }

+ -

관련 글 리스트
62354 socket에서 local port bind 후 연결이 않되요.. ??? 김봉재 1237 2010/09/07
62370     Re:socket에서 local port bind 후 연결이 않되요.. ??? nansama 1514 2010/09/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.