> Блин, сервер разрывает соединение =(.
а поточнее нельзя формулировать? сервер - это приведенная
программа? что значит разрывает?
> nbytes = recv(clientsd, buffer, sizeof(buffer), 0);
> ...
> while (nbytes>0 && strncmp("bye\r",buffer,4)!=0;
непонятно, как это может работать. если peer сделает:
send("Hello\r");
....
send("bye\r");
то вы вполне можете получить строку "hello\rbye\r",
и результат strncmp() != 0.
В accept у тебя черт знает что. Второй аргумент - ? почему туда пихаешь серверную структуру ? Третий - надо указатель пихать, чтобы ядро туда записало длину клиентского адреса.
что-то типа:
socklen_t z;
struct sockaddr_in ddd; // <- Новая структура
z = sizeof(ddd);
accept(sock,(struct sockaddr *)ddd,&z);