Я написал код для одновременного сервера. Я хочу видеть вывод в терминале для дочернего сокета сервера, который генерируется вызовом fork()
. Клиент связывается с дочерним сокетом сервера, и я хочу видеть данные, записанные клиентом на сервере. Так как я могу увидеть это в терминале?
код моего сервера:
while(1)
{
clilen=sizeof(cliaddr);
connfd=accept(sockfd,(struct sockaddr*)&cliaddr,&clilen);
printf("connection accepted\n");
if((childpid=fork())==0)
{
close(sockfd);
printf("child process\n");
str_echo(connfd);
// str_echo(connfd);
exit(0);
}
printf("connection established\n");
str_echo ()
void str_echo(int sockfd)
{
char buff[20];
ssize_t n;
while(1)
{
if((n=read(sockfd,buff,20))>=0)
write(sockfd,buff,20);
else
write(sockfd,"blank",20);
//else
printf("%s",buff);
// write(sockfd,buff,20);
//return;
//else
// writen(sockfd,buff,n);
}
}
но я не получаю вывод для выше printf("%s",buff);
в str_echo()
в терминале