2015-11-27 2 views
-1

Я разработал серверную программу irc. Моя проблема заключается в том, что я могу взять первую половину соединения, то есть я получил ник и пользователя, отправленные клиентом на моем сервере, но когда я хочу отправить сообщение клиенту или любой ответ, который не работаетstapes соединения с сервером irc

if ((client_fd = accept(socket_fd, (struct sockaddr *)&dest, &size))==-1) { 
      //fprintf(stderr,"Accept Failure\n"); 
      perror("accept"); 
      exit(1); 
     } 
     printf("Server got connection from client %s\n", inet_ntoa(dest.sin_addr)); 

     buff="RPL_WELCOME"; 
     send(client_fd,buff, strlen(buff),0); 
+1

Вопросы, ищущих отладки помощи («? Почему не работает этот код») должен включать в себя желаемое поведение, конкретный проблемы или ошибки и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См.: Как создать минимальный, полный и проверенный пример. – Olaf

+0

RPL_WELCOME не является фактической командой. Когда стандарт говорит RPL_WELCOME, они означают поиск кода RPL_WELCOME и отправку этого кода (это 3-значное число). – immibis

+0

buff = "001"; отправить (client_fd, buff, strlen (buff), 0); я сделал это, но он не работает –

ответ

0

uint32_t some_long = 001;

uint32_t network_byte_order; 

// convert and send 
network_byte_order = htonl(some_long); 
send(client_fd, &network_byte_order, sizeof(uint32_t), 0); 

я модифицирована моя функция отправки, как это и есть не ответ на клиента:/