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
[15732] Re:Recv 함수에 대한 질문.
수야 [sooya23] 1411 읽음    2002-02-23 01:09
안녕하세요. 수야랍니다.

거의 모든 int형 반환 함수들은 실패시 -1을 리턴하게됩니다.

Recv() 함수는 실패시에는 -1을 리턴하며
성공시에는 받은 Size의 크기를 반환하게되며 이때는 일반적으로 ULONG나 u_long 타입으로 받게되죠
다른것으로 받아도 상관은 없습니다.

포트를 설정하고.
Bind()란 함수를 xxx.xxx.xxx.xxx란 IP로 전달하네요
이중간쯤에서 SOCKET struct를 정의하구서는
Listen()란 함수를 Active = true; 에서 하게되겠구요
Recv()를 하네요 조건절에서 왠만하면 -1보다 작냐고 설정하시는게 좋겠구요
Recv()함수 호출후에 바로 Recv error이란 멧시지가 뜨면 위에 뭔가 설정이 빠졌을겁니다.

확인해보시구

얼마 시간이 지난후에 에러가 뜬다면

클라이언트의 Port와 서버의 Port번호를 확인해보세요. 이것은 같아야합니다.

컴포넌트는 잘 쓸줄 몰라서요..

정확한 답변이 못되었네요.그냥 참고하세요


모라 님이 쓰신 글 :
:  인디에서 자기 컴의 특정 포트를 열고 수신되는 메시지를 기다리는 걸 짜는걸
:  다음과 같이 했습니다.
:
: char *buf

: IdTCPServer1->DefaultPort=4385;
:  IdTCPServer1->Bindings->Add()->IP="xxx.xxx.xx.xx";
:  IdTCPServer1->Active=true;
:  if((IdTCPServer1->Bindings->Add()->Recv(buf,200,0))==-1)
:   {
:      ShowMessage("Recv error");
:   }
:
: 컴파일은 에러가 안나던데..
:
: 디버그에서 언제나 recv 부분에서 -1값이 나오면서 에러가 뜨네요.
:
: 뭔가 잘못된건지 초보라 모르겠네요...도와주세요 ;-)
:
: p.s 혹시 다른 방법 아시는 분 없나요?

+ -

관련 글 리스트
15709 Recv 함수에 대한 질문. 모라 1066 2002/02/22
15732     Re:Recv 함수에 대한 질문. 수야 1411 2002/02/23
15734         Recv 함수에 대한 질문. 모라 2301 2002/02/23
15736             홍지곤님!!!!!!!!! 답변좀~ 수야 1114 2002/02/23
15739                 Re:홍지곤님!!!!!!!!! 답변좀~ 홍지곤 1216 2002/02/23
15744                     Re:Re:홍지곤님!!!!!!!!! 답변좀~ 모라 1177 2002/02/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.