Второй раз запускается без ошибок(по крайней мере тех, которые я обработал), но на
запросы отвечать отказывается. При обращении по соответствующему адресу telnet
говорит что ТИПА сервер не создан и .т.п. Никакая другая прога с данным портом не работает.
В чём же проблема??
Код: Выделить всё
#include <sys/signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netinet/in.h>
int main(void){
struct sockaddr_in name, name_2;
int sock, acc, pid;
char msg_in[10000];
char msg_out[1000]="Message from <exx>\0";
size_t sizecl;
/*Ignore TERMINAL I/O signals*/
// signal(SIGTTOU, SIG_IGN);
// signal(SIGTTIN, SIG_IGN);
// signal(SIGTSTP, SIG_IGN);
/*EnD: Ignore TERMINAL I/O signals*/
// pid=fork();
// if(pid!=0) exit(0);
// setsid();
// signal(SIGHUP, SIG_IGN);
//socket
if((sock=socket(PF_INET, SOCK_STREAM, 0))<0){
printf("sock FAILED");
}
name.sin_family=AF_INET;
name.sin_port=htons(30);
name.sin_addr.s_addr=htonl(INADDR_LOOPBACK);
if((bind(sock, (struct sockaddr *)&name, sizeof(name)))<0){
printf("bind FAILED");
}
if(listen(sock,1)<0){
printf("listen FAILED");
}
if((acc=accept(sock, (struct sockaddr *)&name_2, &sizecl))<0){
printf("accept FAILED");
}
read(acc, msg_in, 10000);
if(shutdown(acc,0)<0){
printf("shutdown FAILED");
}
if(close(acc)<0){
printf("close FAILED");
}
if(close(sock)<0){
printf("close-2 FAILED");
}
/*process an input data*/
/* sock=socket(PF_INET, SOCK_STREAM, 0);
name.sin_family=AF_INET;
name.sin_port=htons(31);
name.sin_addr.s_addr=htonl(INADDR_LOOPBACK);
connect(sock, (struct sockaddr *)&name, sizeof(name));
write(sock, msg_out, strlen(msg_out));
shutdown(sock, 1);
close(sock);*/
/*EnD: process an input data*/
// if(pid != 0) exit(0);
return 0;
}