Лабораторная работа: Создание простейшего сервера в ОС QNX
int main (void)
{ int S, K, New;
char bufer[250], buf[]="Server create.";
struct sockaddr_in serv =
{ sizeof (struct sockaddr_in),
AF_INET,
htons (3128),
INADDR_ANY
};
S=socket (AF_INET,SOCK_STREAM,0);
bind (S, (struct sockaddr*)&serv, sizeof(serv));
listen (S,10);
for (;;)
{
K=sizeof (serv);
New=accept (S, (struct sockaddr*)&serv,&K);
read (New,bufer,sizeof (bufer));
write (New,buf,sizeof(buf));
close (New);
}
close (S);
}
Опишем функции, которые мы использовали в данной программе:
Для создания сокета используется функция socket:
S=socket(protocol_family, socket_type, protocol);
где:
- protocol_family – группа или семейство, к которой принадлежит протокол, например TCP/IP. В нашем случае мы используем коммуникационный домен AF_INET, содержащий Internet протоколы.
- socket_type – тип сокета, задает режим соединения: датаграммный или ориентированный на поток байтов. В нашем случае тип сокета – SOCK_STREAM – обеспечивает последовательный, надежный, ориентированный на установление двусторонней связи поток байтов.
– protocol – определяет протокол, с которым будет работать сокет. В нашем случае для создания сокета с протоколом TCP данный параметр функции устанавливаем равным 0.