socket网络编程——网络编程接口
生活随笔
收集整理的這篇文章主要介紹了
socket网络编程——网络编程接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網絡編程接口
#include <sys/types.h> #include <sys/socket.h>/* socket()創建套接字,成功返回套接字的文件描述符,失敗返回-1 domain: 設置套接字的協議簇, AF_UNIX AF_INET AF_INET6 type: 設置套接字的服務類型 SOCK_STREAM SOCK_DGRAM protocol: 一般設置為 0,表示使用默認協議 */ int socket( int domain, int type, int protocol);/* bind()將 sockfd 與一個 socket 地址綁定,成功返回 0,失敗返回-1 sockfd 是網絡套接字描述符 addr 是地址結構 addrlen 是 socket 地址的長度 */ int bind( int sockfd, const struct sockaddr *addr, socklen_t addrlen);/* listen()創建一個監聽隊列以存儲待處理的客戶連接,成功返回 0,失敗返回-1 sockfd 是被監聽的 socket 套接字 backlog 表示處于完全連接狀態的 socket 的上限 */ int listen( int sockfd, int backlog);/* accept()從 listen 監聽隊列中接收一個連接,成功返回一個新的連接 socket,該socket 唯一地標識了被接收的這個連接,失敗返回-1 sockfd 是執行過 listen 系統調用的監聽 socket addr 參數用來獲取被接受連接的遠端 socket 地址 addrlen 指定該 socket 地址的長度 */ int accept( int sockfd, struct sockaddr *addr, socklen_t *addrlen);/* connect()客戶端需要通過此系統調用來主動與服務器建立連接, 成功返回 0,失敗返回-1 sockfd 參數是由 socket()返回的一個 socket。 serv_addr 是服務器監聽的 socket 地址 addrlen 則指定這個地址的長度 */ int connect( int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);/* close()關閉一個連接,實際上就是關閉該連接對應的 socket */ int close( int sockfd);TCP/UDP數據讀寫接口
/* TCP 數據讀寫: recv()讀取 sockfd 上的數據,buff 和 len 參數分別指定讀緩沖區的位置和大小 send()往 socket 上寫入數據,buff 和 len 參數分別指定寫緩沖區的位置和數據長度 flags 參數為數據收發提供了額外的控制 */ ssize_t recv( int sockfd, void *buff, size_t len, int flags); ssize_t send( int sockfd, const void *buff, size_t len, int flags);/* UDP 數據讀寫: recvfrom()讀取 sockfd 上的數據,buff 和 len 參數分別指定讀緩沖區的位置和大 小 src_addr 記錄發送端的 socket 地址 addrlen 指定該地址的長度 sendto()往 socket 上寫入數據,buff 和 len 參數分別指定寫緩沖區的位置和數據長度 dest_addr 指定接收數據端的 socket 地址 addrlen 指定該地址的長度 */ ssize_t recvfrom( int sockfd, void *buff, size_t len, int flags,struct sockaddr* src_addr, socklen_t *addrlen); ssize_t sendto( int sockfd, void *buff, size_t len, int flags,struct sockaddr* dest_addr, socklen_t addrlen);總結
以上是生活随笔為你收集整理的socket网络编程——网络编程接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: socket网络编程——套接字地址结构
- 下一篇: socket网络编程——TCP编程流程及