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
[9066] Re:Re:Re:소켓을 API루 만들구 있는데 뭔가 문제가 있는거 같습니다.
Moony [] 888 읽음    2001-07-17 09:57
그렇담 전체 소스를 한번 봐야할 것 같군요...

괜찮으시다면 소스를 제게 메일로 보내주시면 훑어보겠습니다...

지금 보여주신 소스에서는 정확히 말씀드리기가 힘들것 같네요...



수야 님이 쓰신 글 :
: 네.. 안녕하세요? ^^
:
: 우선 답변해주셔서 감사드리구요
:
: 리턴값이 모두 똑같습니다. int로 받으면 -1 SOCKET로 받으면 42..... 이런식
:
: 클라이언트를 받아도 같은 값이구요
:
: 4버튼만이 아닌 모든것이 그렇습니다.
:
: 어디서부터 잘못된것지도 모르겠네요..^^;
:
: 다시한번 부탁드릴께여~ ^^;;
:
: Moony 님이 쓰신 글 :
: : 안녕하세요... Moony입니다...
: :
: : 버튼4를 클릭하면 접속됐다구 나오는 건 소스상으로는 당연한겁니다...
: :
: :      ClientSk = accept(ServerSk, (struct sockaddr *)&ClientSk, &len);
: :
: :       // 이 accept 함수는 호출했을때 블록킹되질 않구 바로 리턴합니다...
: :        // 단지 성공이냐 실패냐를 리턴할 뿐이죠...
: :       // 그러므로 에러값만 리턴 될 뿐 실행되는 부분이고...
: :       // 그럼 다음 메시지 창이 뜨게 되구요...
: :
: :        // 참고로 listen() 은 새로운 클라이언트가 접속할때 까지 블록킹됩니다...
: :
: :      ShowMessage(ClientSk);
: :
: : 그런데 수야님이 말씀하신게 실행만 시켜도 그렇다면 다른 문제일꺼구요...
: :
: : 제가 말씀드린데로 버튼4를 클릭했을때 그렇다면 위에서 설명한거와 같구요...
: :
: : 어떤걸 말씀하신건지....
: :
: :
: :
: :
: : 수야 님이 쓰신 글 :
: : : 안녕하세요~
: : :
: : : 뭔가 이상해서요..
: : :
: : : 해더 public에
: : :
: : :   SOCKET ServerSk, ClientSk;
: : :   struct sockaddr_in Server, Client;
: : :
: : : cpp에 이렇게 해놓구 컴파일하면
: : :
: : : 소켓번호는 항상 똑같구
: : :
: : : 클라이언트는 프로그램 짜지두 않았는데 접속돼다구 하면서 시작됩니다.
: : :
: : : ㅡ.ㅡ
: : :
: : : 왜이렇죠?
: : :
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : {
: : :   // socket 생성 성공하면 소켓값을 실패하면 -1 값이 리턴된다.
: : :   ServerSk = socket(AF_INET, SOCK_STREAM, 0);
: : :   if(ServerSk < 0)
: : :   {
: : :     ShowMessage("소켓 생성에 실패하였습니다");
: : :     return;
: : :   }
: : :
: : :   // 소켓의 구조체 내용
: : :   Server.sin_family = AF_INET;
: : :   Server.sin_addr.s_addr = inet_addr("203.239.173.69");
: : : // 테스트 후 차환 테스트 ( 자신의 IP를 자동 등록함 )
: : : //  Server.sin_addr.s_addr = htonl(INADDR_ANY);
: : :   Server.sin_port = htons(8000);
: : : // 위에서 포트 번호를 8000 으로 지정하였지만 0으로 하면 시스템이 배정한
: : : // 포트 번호로 자동 배정된다.
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::Button2Click(TObject *Sender)
: : : {
: : :   // 소켓을 열고난후 소켓을 시스템의 포트에 연결시켜 준다
: : :   ServerSk = bind(ServerSk, (struct sockaddr *)&Server, sizeof(ServerSk));
: : :   if(ServerSk < 0)
: : :     ShowMessage("포트 연결에 실패하였습니다.");
: : :
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::Button3Click(TObject *Sender)
: : : {
: : :   // listen 상태
: : :   ServerSk = listen(ServerSk, 5);
: : :   if(ServerSk < 0)
: : :     StatusBar1->SimpleText = "대기 상태 불가";
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::Button4Click(TObject *Sender)
: : : {
: : :   // accept 상태
: : :   int len;
: : :   StatusBar1->SimpleText = "Server : Waiting connect request";
: : :
: : :   while(1)
: : :   {
: : :     ClientSk = accept(ServerSk, (struct sockaddr *)&ClientSk, &len);
: : :     ShowMessage(ClientSk);
: : :     if(ClientSk > 0)
: : :     {
: : :       StatusBar1->SimpleText = "Server : Client Connect";
: : :       // send시킴
: : :       ClientSk = send(ClientSk, "바보", sizeof("바보"),0);
: : :
: : :       return;
: : :     }
: : :   }
: : :
: : : }
: : : //---------------------------------------------------------------------------

+ -

관련 글 리스트
9058 소켓을 API루 만들구 있는데 뭔가 문제가 있는거 같습니다. 수야 1181 2001/07/16
9063     Re:소켓을 API루 만들구 있는데 뭔가 문제가 있는거 같습니다. Moony 990 2001/07/16
9065         Re:Re:소켓을 API루 만들구 있는데 뭔가 문제가 있는거 같습니다. 수야 907 2001/07/17
9069             역시 전체 소스를 보니까 문제가 발견되네요...^^; Moony 834 2001/07/17
9072                 Re:역시 전체 소스를 보니까 문제가 발견되네요...^^; 수야 905 2001/07/17
9066             Re:Re:Re:소켓을 API루 만들구 있는데 뭔가 문제가 있는거 같습니다. Moony 888 2001/07/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.