У кого есть примерчик ?

Тема в разделе "WASM.NETWORKS", создана пользователем DownTown, 9 фев 2005.

  1. DownTown

    DownTown New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2005
    Сообщения:
    1
    У кого есть примерчик server socket, что бы просто биндил сокет и прослушивал его ...
     
  2. drone

    drone New Member

    Публикаций:
    0
    Регистрация:
    14 июл 2004
    Сообщения:
    37
    Адрес:
    Moscow
    Вызываешь фенкцию (лучше в отдельном потоке):





    void scanning(PVOID pvoid){

    WSADATA WsaData;

    int err = WSAStartup (0x0101, &WsaData);

    if (err == SOCKET_ERROR){кeturn;}



    int s1= socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);



    //задаем параметры для сокета (сервера)

    SOCKADDR_IN sin;

    sin.sin_family = AF_INET;

    sin.sin_port = htons(Port);

    sin.sin_addr.s_addr = INADDR_ANY;



    //подключаем socket к коммуникационной среде

    err = bind( s1, (LPSOCKADDR)&sin, sizeof(sin) );

    if (err == -1){hmes(hDialog, "No bind"); return;}

    //создаем очереть для ожедания вызовов от клиентов

    err = listen( s1, SOMAXCONN);

    if (err!= 0){hmes(hDialog, "No listen"); return;}



    //=========== Scanning port =========================



    while (1){ // loop of daemon

    //принемаем запрос от программ-клиента на установление связи

    SOCKADDR_IN from;

    int fromlen=sizeof(from);

    int sclient = accept(s1, (struct sockaddr*)&from, &fromlen);



    char buffer_[250];



    recv(sclient, buffer_, 250, 0);



    MessageBox(NULL, buffer_, "", MB_OK);

    // отправляем клиенту ответ

    send(sclient, "OK", 2, 0);

    if(sclient) closesocket(sclient); // закрываем робочий сокет

    }



    if(s1) closesocket(s1);

    }

    /*************************/