|
거의 소켓 프로그래밍을해서 사용했었구요
빌더자체의 TServerSocket랑 TClientSocket을 아주 쬐꿈 써봤눈뒈여?
생각같아서는 인디가 그런형태라면..
socket() 라는 함수가 있을듯싶은데요 다름 사람을 통해 답변을 구해보도록하죠
홍지곤님이 인디컴포넌트는 빠삭할껄요~ ^^
수야여씀미당
모라 님이 쓰신 글 :
:
: 답변 고맙습니다. 그런데..
:
: 저게 bind()함수를 특정 아이피에 전달하는게 아니고
:
: 자신의 local computer 아이피를 지정한건데...
:
: c언어에 socket 구조체에 아이피와 포트 정보를 넣듯이
:
: 컴포넌트 방식으로 정보를 넣은거 이거든요.
:
: 제가 틀린건지 모르겠네요.
:
: 아무튼 디버그시 recv 함수에서 바로 -1이 나와버리네요. T_T
:
: 컴포넌트는 모르신다고 했는데 그럼 다른 방법으론 어떻게 하시나요?
:
: 수야 님이 쓰신 글 :
: : 안녕하세요. 수야랍니다.
: :
: : 거의 모든 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 혹시 다른 방법 아시는 분 없나요?
|