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
[57455] 소켓 프로그램 질문입니다.
일월영측 [kimysh] 986 읽음    2009-07-02 14:18
WSADATA wsadata;
SOCKADDR_IN clientAddress;
int clientAddress_size;
int clientSocket;
SOCKET serverSocket;
    WSAStartup(MAKEWORD(2,2),&wsadata);
    // 클라이언트의 접속을 기다리는 서버 소켓의 생성
    serverSocket = socket(AF_INET, SOCK_STREAM, 0);
    //서버의 주소를 저장하는 구조체 serverAddress 생성
    SOCKADDR_IN serverAddress;
    ZeroMemory(&serverAddress,sizeof(serverAddress));
    // serverAddress에 현재 IP 대입
    serverAddress.sin_addr.s_addr = htonl(INADDR_ANY);
    // 주소 타입
    serverAddress.sin_family = AF_INET;
    // 클라이언트와 메시지를 주고 받을 포트 번호
    serverAddress.sin_port = htons(PORT);
    //서버 소켓에 주소 정보 설정
    bind(serverSocket, (sockaddr *)&serverAddress, sizeof(serverAddress));
    //클라이언트의 접속을 기다리는 대기 모드로 전환
    listen(serverSocket, 5);
    while(1)
    {
        // clientSocket = accept(serverSocket,(sockaddr *)&clientAddress,&clientAddress_size);
//d위와 같이 선언 하게 되면 클라이언트의 IP를 얻어올 수 있었는데  프로그램을 약간 수정을 하니
// 클라이언트의 IP주소를 못 얻어오고, 위와 같이 선언하면 패킷을 받지 못하더군요..
// 아래 방법으로 하면 패킷을 전송 받아 실행은 되지만, IP 주소를 알수가 없는데
// IP를 전송 받을 수 있는 방법이 없을까요???
         clientSocket = accept(serverSocket,NULL, NULL);
         if(clientSocket != -1)
         {
                   int strlen = recv(clientSocket,fromClient,MAX_SIZE,0);            
                   send(clientSocket,fromClient,strlen,0);
         }

+ -

관련 글 리스트
57455 소켓 프로그램 질문입니다. 일월영측 986 2009/07/02
57459     Re:어찌 하다 보니 해결을 하여 올립니다.~^^; 일월영측 1026 2009/07/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.