Unix Socket - Tóm tắt
Đây là danh sách tất cả các chức năng liên quan đến lập trình socket.
Chức năng cổng và dịch vụ
Unix cung cấp các chức năng sau để tìm nạp tên dịch vụ từ tệp / etc / services.
struct servent *getservbyname(char *name, char *proto) - Cuộc gọi này lấy tên dịch vụ và tên giao thức và trả về số cổng tương ứng cho dịch vụ đó.
struct servent *getservbyport(int port, char *proto) - Cuộc gọi này nhận một số cổng và một tên giao thức và trả về tên dịch vụ tương ứng.
Chức năng đặt hàng theo byte
unsigned short htons (unsigned short hostshort) - Hàm này chuyển đổi các đại lượng 16 bit (2 byte) từ thứ tự byte chủ sang thứ tự byte mạng.
unsigned long htonl (unsigned long hostlong) - Hàm này chuyển đổi các đại lượng 32 bit (4 byte) từ thứ tự byte chủ sang thứ tự byte mạng.
unsigned short ntohs (unsigned short netshort) - Hàm này chuyển đổi các đại lượng 16 bit (2 byte) từ thứ tự byte mạng sang thứ tự byte máy chủ.
unsigned long ntohl (unsigned long netlong) - Hàm này chuyển đổi số lượng 32 bit từ thứ tự byte mạng sang thứ tự byte máy chủ.
Chức năng địa chỉ IP
int inet_aton (const char *strptr, struct in_addr *addrptr)- Lệnh gọi hàm này chuyển đổi chuỗi được chỉ định, trong ký hiệu chấm tiêu chuẩn Internet, thành địa chỉ mạng và lưu trữ địa chỉ trong cấu trúc được cung cấp. Địa chỉ được chuyển đổi sẽ nằm trong Thứ tự Byte Mạng (các byte được sắp xếp theo thứ tự từ trái sang phải). Nó trả về 1 nếu chuỗi hợp lệ và 0 khi có lỗi.
in_addr_t inet_addr (const char *strptr)- Lệnh gọi hàm này chuyển đổi chuỗi được chỉ định, trong ký hiệu dấu chấm tiêu chuẩn Internet, thành một giá trị số nguyên phù hợp để sử dụng làm địa chỉ Internet. Địa chỉ được chuyển đổi sẽ nằm trong Thứ tự Byte Mạng (các byte được sắp xếp theo thứ tự từ trái sang phải). Nó trả về một địa chỉ IPv4 theo thứ tự byte mạng nhị phân 32 bit và INADDR_NONE do lỗi.
char *inet_ntoa (struct in_addr inaddr) - Lệnh gọi hàm này chuyển đổi địa chỉ máy chủ Internet được chỉ định thành một chuỗi trong ký hiệu dấu chấm chuẩn Internet.
Chức năng cốt lõi của ổ cắm
int socket (int family, int type, int protocol) - Cuộc gọi này trả về một bộ mô tả ổ cắm mà bạn có thể sử dụng trong các cuộc gọi hệ thống sau này hoặc nó cho bạn -1 khi bị lỗi.
int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)- Chức năng kết nối được sử dụng bởi máy khách TCP để thiết lập kết nối với máy chủ TCP. Cuộc gọi này trả về 0 nếu nó kết nối thành công với máy chủ, ngược lại nó trả về -1.
int bind(int sockfd, struct sockaddr *my_addr,int addrlen)- Hàm ràng buộc gán địa chỉ giao thức cục bộ cho một ổ cắm. Cuộc gọi này trả về 0 nếu nó liên kết thành công với địa chỉ, ngược lại nó trả về -1.
int listen(int sockfd, int backlog)- Hàm lắng nghe chỉ được gọi bởi một máy chủ TCP để lắng nghe yêu cầu của máy khách. Cuộc gọi này trả về 0 khi thành công, nếu không, nó trả về -1.
int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)- Chức năng chấp nhận được gọi bởi máy chủ TCP để chấp nhận các yêu cầu của khách hàng và thiết lập kết nối thực tế. Cuộc gọi này trả về một bộ mô tả không âm khi thành công, nếu không nó trả về -1.
int send(int sockfd, const void *msg, int len, int flags)- Chức năng gửi được sử dụng để gửi dữ liệu qua các ổ cắm luồng hoặc ổ cắm datagram ĐÃ KẾT NỐI. Cuộc gọi này trả về số byte được gửi đi, nếu không nó trả về -1.
int recv (int sockfd, void *buf, int len, unsigned int flags)- Hàm recv được sử dụng để nhận dữ liệu qua ổ cắm luồng hoặc ổ cắm dữ liệu ĐÃ KẾT NỐI. Lệnh gọi này trả về số byte được đọc vào bộ đệm, nếu không, nó trả về -1 khi bị lỗi.
int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)- Hàm sendto được sử dụng để gửi dữ liệu qua các ổ cắm dữ liệu KHÔNG KẾT NỐI. Cuộc gọi này trả về số byte được gửi, nếu không, nó trả về -1 khi bị lỗi.
int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen)- Hàm recvfrom được sử dụng để nhận dữ liệu từ các ổ cắm dữ liệu KHÔNG KẾT NỐI. Lệnh gọi này trả về số byte được đọc vào bộ đệm, nếu không, nó trả về -1 khi bị lỗi.
int close (int sockfd)- Chức năng đóng được sử dụng để đóng một giao tiếp giữa máy khách và máy chủ. Cuộc gọi này trả về 0 khi thành công, nếu không, nó trả về -1.
int shutdown (int sockfd, int how)- Chức năng tắt máy được sử dụng để đóng giao tiếp giữa máy khách và máy chủ một cách duyên dáng. Chức năng này cho phép kiểm soát nhiều hơn so với chức năng đóng. Nó trả về 0 khi thành công, -1 nếu ngược lại.
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) - Chức năng này được sử dụng để đọc hoặc ghi nhiều socket.
Các chức năng của Socket Helper
int write (int fildes, const void *buf, int nbyte)- Hàm ghi cố gắng ghi các byte nbyte từ bộ đệm được buf trỏ đến vào tệp được liên kết với bộ mô tả tệp đang mở, các tệp. Sau khi hoàn tất thành công, write () trả về số byte thực sự được ghi vào tệp được liên kết với các bộ lọc. Con số này không bao giờ lớn hơn nbyte. Nếu không, -1 được trả về.
int read (int fildes, const void *buf, int nbyte)- Hàm đọc cố gắng đọc các byte nbyte từ tệp được liên kết với bộ mô tả tệp đang mở, các tệp, vào bộ đệm được trỏ đến bởi buf. Sau khi hoàn tất thành công, write () trả về số byte thực sự được ghi vào tệp được liên kết với các bộ lọc. Con số này không bao giờ lớn hơn nbyte. Nếu không, -1 được trả về.
int fork (void)- Chức năng fork tạo ra một quy trình mới. Tiến trình mới, được gọi là tiến trình con, sẽ là một bản sao chính xác của tiến trình gọi (tiến trình mẹ).
void bzero (void *s, int nbyte)- Hàm bzero đặt nbyte null byte trong chuỗi s. Hàm này sẽ được sử dụng để đặt tất cả các cấu trúc socket có giá trị null.
int bcmp (const void *s1, const void *s2, int nbyte)- Hàm bcmp so sánh chuỗi byte s1 với chuỗi byte s2. Cả hai chuỗi đều được giả định là dài nbyte byte.
void bcopy (const void *s1, void *s2, int nbyte)- Hàm bcopy sao chép nbyte byte từ chuỗi s1 sang chuỗi s2. Các chuỗi chồng chéo được xử lý chính xác.
void *memset(void *s, int c, int nbyte) - Hàm memset cũng được sử dụng để thiết lập các biến cấu trúc theo cách tương tự như bzero.