Използване на Unix сокети

#include<sys/types.h>
#include<sys/socket.h>

int socket(int domain, int type, int protocol);
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
  • socket() създава крайна точка за комуникация и връща дескриптор на файла, който се отнася до тази крайна точка.
    • домейнът (domain) определя семейството протоколи, което ще се използва (AF_UNIX, AF_LOCAL, AF_INET и др.).
    • Тип (type) определя комуникационната семантика (SOCK_STREAM, SOCK_DGRAM и т.н.).
  • Когато се създава сокет със socket(), то той съществува в именованото пространство (адресното пространство), но няма зададен адрес.
  • bind() присвоява адреса, посочен в addr, на сокета, посочен от файловият дескриптор sockfd върнат от метода socket().
  • sockaddr има следната структура:
    struct sockaddr {
     sa_family_t sa_family;
     char sa_data[14];
    }
    

results matching ""

    No results matching ""