Unix Socket - สรุป
นี่คือรายการฟังก์ชันทั้งหมดที่เกี่ยวข้องกับการเขียนโปรแกรมซ็อกเก็ต
ฟังก์ชั่นพอร์ตและบริการ
Unix จัดเตรียมฟังก์ชันต่อไปนี้เพื่อดึงชื่อบริการจากไฟล์ / etc / services
struct servent *getservbyname(char *name, char *proto) - การโทรนี้ใช้ชื่อบริการและชื่อโปรโตคอลและส่งกลับหมายเลขพอร์ตที่เกี่ยวข้องสำหรับบริการนั้น
struct servent *getservbyport(int port, char *proto) - การโทรนี้ใช้หมายเลขพอร์ตและชื่อโปรโตคอลและส่งกลับชื่อบริการที่เกี่ยวข้อง
ฟังก์ชันการสั่งซื้อไบต์
unsigned short htons (unsigned short hostshort) - ฟังก์ชันนี้จะแปลงปริมาณ 16 บิต (2 ไบต์) จากคำสั่งไบต์ของโฮสต์เป็นลำดับไบต์ของเครือข่าย
unsigned long htonl (unsigned long hostlong) - ฟังก์ชันนี้จะแปลงปริมาณ 32 บิต (4 ไบต์) จากคำสั่งไบต์ของโฮสต์เป็นลำดับไบต์ของเครือข่าย
unsigned short ntohs (unsigned short netshort) - ฟังก์ชันนี้จะแปลงปริมาณ 16 บิต (2 ไบต์) จากคำสั่งไบต์เครือข่ายเป็นคำสั่งไบต์ของโฮสต์
unsigned long ntohl (unsigned long netlong) - ฟังก์ชันนี้จะแปลงปริมาณ 32 บิตจากคำสั่งไบต์เครือข่ายเป็นคำสั่งไบต์ของโฮสต์
ฟังก์ชั่นที่อยู่ IP
int inet_aton (const char *strptr, struct in_addr *addrptr)- การเรียกใช้ฟังก์ชันนี้จะแปลงสตริงที่ระบุในสัญกรณ์จุดมาตรฐานอินเทอร์เน็ตเป็นที่อยู่เครือข่ายและจัดเก็บที่อยู่ในโครงสร้างที่มีให้ ที่อยู่ที่แปลงแล้วจะอยู่ใน Network Byte Order (ไบต์เรียงลำดับจากซ้ายไปขวา) จะคืนค่า 1 หากสตริงถูกต้องและ 0 เมื่อเกิดข้อผิดพลาด
in_addr_t inet_addr (const char *strptr)- การเรียกใช้ฟังก์ชันนี้จะแปลงสตริงที่ระบุในสัญกรณ์จุดมาตรฐานอินเทอร์เน็ตเป็นค่าจำนวนเต็มที่เหมาะสำหรับใช้เป็นที่อยู่อินเทอร์เน็ต ที่อยู่ที่แปลงแล้วจะอยู่ใน Network Byte Order (ไบต์เรียงลำดับจากซ้ายไปขวา) ส่งคืนไบต์เครือข่ายไบนารี 32 บิตที่สั่งซื้อที่อยู่ IPv4 และ INADDR_NONE เมื่อเกิดข้อผิดพลาด
char *inet_ntoa (struct in_addr inaddr) - การเรียกใช้ฟังก์ชันนี้จะแปลงที่อยู่โฮสต์อินเทอร์เน็ตที่ระบุเป็นสตริงในสัญกรณ์จุดมาตรฐานอินเทอร์เน็ต
ฟังก์ชั่น Socket Core
int socket (int family, int type, int protocol) - การโทรนี้ส่งคืนตัวอธิบายซ็อกเก็ตที่คุณสามารถใช้ในการเรียกระบบในภายหลังหรือให้ -1 เมื่อเกิดข้อผิดพลาด
int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)- ฟังก์ชันการเชื่อมต่อถูกใช้โดยไคลเอนต์ TCP เพื่อสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ TCP การเรียกนี้จะคืนค่า 0 หากเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จมิฉะนั้นจะคืนค่า -1
int bind(int sockfd, struct sockaddr *my_addr,int addrlen)- ฟังก์ชั่นผูกกำหนดที่อยู่โปรโตคอลท้องถิ่นให้กับซ็อกเก็ต การเรียกนี้จะคืนค่า 0 หากผูกกับแอดเดรสสำเร็จมิฉะนั้นจะคืนค่า -1
int listen(int sockfd, int backlog)- ฟังก์ชั่นการฟังถูกเรียกโดยเซิร์ฟเวอร์ TCP เพื่อรับฟังคำขอของไคลเอ็นต์เท่านั้น การโทรนี้ส่งคืน 0 เมื่อสำเร็จมิฉะนั้นจะส่งกลับ -1
int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)- ฟังก์ชันยอมรับถูกเรียกโดยเซิร์ฟเวอร์ TCP เพื่อยอมรับคำขอของไคลเอ็นต์และเพื่อสร้างการเชื่อมต่อจริง การเรียกนี้ส่งคืนตัวอธิบายที่ไม่เป็นลบเกี่ยวกับความสำเร็จมิฉะนั้นจะส่งกลับ -1
int send(int sockfd, const void *msg, int len, int flags)- ฟังก์ชันส่งใช้เพื่อส่งข้อมูลผ่านซ็อกเก็ตสตรีมหรือซ็อกเก็ตดาต้าแกรมที่เชื่อมต่อ การเรียกนี้ส่งคืนจำนวนไบต์ที่ส่งออกไปมิฉะนั้นจะส่งกลับ -1
int recv (int sockfd, void *buf, int len, unsigned int flags)- ฟังก์ชัน recv ใช้เพื่อรับข้อมูลผ่านซ็อกเก็ตสตรีมหรือซ็อกเก็ตดาต้าแกรมที่เชื่อมต่อ การเรียกนี้จะส่งคืนจำนวนไบต์ที่อ่านลงในบัฟเฟอร์มิฉะนั้นจะส่งกลับค่า -1 เมื่อเกิดข้อผิดพลาด
int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)- ฟังก์ชัน sendto ใช้เพื่อส่งข้อมูลผ่านซ็อกเก็ตดาตาแกรมที่ไม่ได้เชื่อมต่อ การโทรนี้ส่งคืนจำนวนไบต์ที่ส่งมิฉะนั้นจะส่งกลับ -1 เมื่อมีข้อผิดพลาด
int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen)- ฟังก์ชัน recvfrom ใช้เพื่อรับข้อมูลจากซ็อกเก็ตดาตาแกรมที่ไม่ได้เชื่อมต่อ การเรียกนี้จะส่งคืนจำนวนไบต์ที่อ่านลงในบัฟเฟอร์มิฉะนั้นจะส่งกลับค่า -1 เมื่อเกิดข้อผิดพลาด
int close (int sockfd)- ฟังก์ชันปิดใช้เพื่อปิดการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ การโทรนี้ส่งคืน 0 เมื่อสำเร็จมิฉะนั้นจะส่งกลับ -1
int shutdown (int sockfd, int how)- ฟังก์ชันการปิดระบบใช้เพื่อปิดการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์อย่างสง่างาม ฟังก์ชันนี้ให้การควบคุมมากกว่าเมื่อเปรียบเทียบกับฟังก์ชันปิด จะคืนค่า 0 เมื่อสำเร็จหรือไม่เช่นนั้น -1
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) - ฟังก์ชั่นนี้ใช้เพื่ออ่านหรือเขียนซ็อกเก็ตหลายตัว
ฟังก์ชั่นตัวช่วยซ็อกเก็ต
int write (int fildes, const void *buf, int nbyte)- ฟังก์ชั่นการเขียนพยายามเขียนไบต์ nbyte จากบัฟเฟอร์ที่ชี้ไปโดย buf ไปยังไฟล์ที่เชื่อมโยงกับตัวอธิบายไฟล์ที่เปิด fildes เมื่อดำเนินการสำเร็จแล้ว write () จะส่งคืนจำนวนไบต์ที่เขียนไปยังไฟล์ที่เกี่ยวข้องกับ fildes ตัวเลขนี้ไม่เคยมากกว่า nbyte มิฉะนั้นจะส่งคืน -1
int read (int fildes, const void *buf, int nbyte)- ฟังก์ชั่นการอ่านพยายามอ่านไบต์ nbyte จากไฟล์ที่เกี่ยวข้องกับ open file descriptor, fildes, เข้าไปในบัฟเฟอร์ที่ชี้ไปโดย buf เมื่อดำเนินการสำเร็จแล้ว write () จะส่งคืนจำนวนไบต์ที่เขียนไปยังไฟล์ที่เกี่ยวข้องกับ fildes ตัวเลขนี้ไม่เคยมากกว่า nbyte มิฉะนั้นจะส่งคืน -1
int fork (void)- ฟังก์ชันส้อมสร้างกระบวนการใหม่ กระบวนการใหม่ที่เรียกว่ากระบวนการลูกจะเป็นสำเนาที่แน่นอนของกระบวนการเรียก (กระบวนการหลัก)
void bzero (void *s, int nbyte)- ฟังก์ชัน bzero จะวาง nbyte null ไบต์ในสตริง s ฟังก์ชันนี้จะใช้เพื่อตั้งค่าโครงสร้างซ็อกเก็ตทั้งหมดด้วยค่า null
int bcmp (const void *s1, const void *s2, int nbyte)- ฟังก์ชัน bcmp เปรียบเทียบสตริงไบต์ s1 กับสตริงไบต์ s2 ทั้งสองสายถือว่ามีความยาว nbyte ไบต์
void bcopy (const void *s1, void *s2, int nbyte)- ฟังก์ชัน bcopy คัดลอกไบต์ nbyte จากสตริง s1 ไปยังสตริง s2 สตริงที่ทับซ้อนกันได้รับการจัดการอย่างถูกต้อง
void *memset(void *s, int c, int nbyte) - ฟังก์ชัน memset ยังใช้เพื่อตั้งค่าตัวแปรโครงสร้างในลักษณะเดียวกับ bzero