Показать сообщение отдельно

  #5  
Старый 21.06.2009, 20:52
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
С нами: 9086760

Репутация: 1
По умолчанию

Вобщем разобрался с отправкой ответа , скрипт немного переделал

Код:
int main ( )
{
    int sockfd,client;
        sockfd = socket(PF_INET, SOCK_STREAM, 0);
        socklen_t size;
 struct sockaddr_in addr;
 bzero(&addr, sizeof(addr));

        addr.sin_family = AF_INET;
        addr.sin_port = htons(PORT);
        addr.sin_addr.s_addr = htonl(INADDR_ANY);

          // bind()
        if(bind(sockfd,(struct sockaddr *) &addr, sizeof(addr)) != 0){
                cout << "Error - bind() !" << "\n"; 
                return 0;
                }
          // listen()
        if(listen(sockfd, 5) != 0){
                cout << "Error - listen() !" << "\n";
                return 0;
                }
                 
                
                while(1) {
                             size = sizeof(addr);
                             client = accept(sockfd, (struct sockaddr *) &addr, &size);

                             if(client > 0){

                                    cout << "Coonect-" <<inet_ntoa(addr.sin_addr) <<"\n";

                                    // - пришли данные
                               char buffer[1024];
                                    bzero(buffer,sizeof(buffer));
                                    recv(client, buffer, sizeof(buffer),0);
                                    cout << buffer << "\n";

                                    //- ответ клиенту
                               char *reply = "ggg";
                               send(client, reply, strlen(reply)+1, 0);

                             }
                }  
}
Получается к серверу конектятся клиенты и обмениваются данными - конект поддерживается постоянно с клиентом - и вот проблема как определить на стороне сервера что клиент

отключился - разорвал соеденение ?
 
Ответить с цитированием