C/Strumień: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
m →‎Gniazda: Plik nagłówkowy sys/socket.h istnieje niezależnie od systemu operacyjnego, a funkcje gniazd zawsze istnieją, ale jeśli system tak naprawdę nie obsługuje gniazd, te funkcje zawsze zawodzą.
Linia 93:
W systemach typu Unix obsługa gniazd jest implementowana w jądrze, a wykonywanie na nich operacji umożliwiają funkcje systemowe podobne do tych, jakich używa się w stosunku do plików.
 
Nie wszystkie systemy operacyjne obsługują gniazda, Windows nie ma pliku sys/socket.h ale jest plik winsock2.h.<ref>[https://stackoverflow.com/questions/4638604/where-does-one-get-the-sys-socket-h-header-source-file stackoverflow question: where-does-one-get-the-sys-socket-h-header-source-file]</ref> W bibliotece GNU C plik nagłówkowy sys/socket.h istnieje niezależnie od systemu operacyjnego, a funkcje gniazd zawsze istnieją, ale jeśli system tak naprawdę nie obsługuje gniazd, te funkcje zawsze zawodzą.
 
<syntaxhighlight lang= c>
#ifdef __WIN32__
# include <winsock2.h>
#else
# include <sys/socket.h>
#endif
</syntaxhighlight >
 
 
Programowanie gniazd<ref>[https://www.gnu.org/software/libc/manual/html%20node/Sockets.html gnu libc manual: Sockets]</ref><ref> [https://www.pdbuchan.com/rawsock/rawsock.html C Language Examples of IPv4 and IPv6 Raw Sockets for Linux by David Buchan 2015] </ref><ref>[https://linux.die.net/man/2/socket socket(2) - Linux man page] </ref> to sposób łączenia dwóch węzłów w sieci w celu komunikowania się ze sobą. Jedno gniazdo (węzeł) nasłuchuje na określonym porcie w adresie IP, podczas gdy drugie gniazdo łączy się z drugim, aby utworzyć połączenie. Serwer tworzy gniazdo odbiornika, podczas gdy klient łączy się z serwerem.<ref>[https://www.geeksforgeeks.org/socket-programming-cc/ geeksforgeeks : socket-programming by Akshat Sinha]</ref>