socket函数介绍
生活随笔
收集整理的這篇文章主要介紹了
socket函数介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 socket函數介紹
1 socket函數介紹
#include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protocol);domain:
- AF_INET 這是大多數用來產生socket的協議,使用TCP或UDP來傳輸,用IPv4的地址
- AF_INET6 與上面類似,不過是來用IPv6的地址
- AF_UNIX 本地協議,使用在Unix和Linux系統上,一般都是當客戶端和服務器在同一臺及其上的時候使用
type:
- SOCK_STREAM 這個協議是按照順序的、可靠的、數據完整的基于字節流的連接。這是一個使用最多的socket類型,這個socket是使用TCP來進行傳輸。
- SOCK_DGRAM 這個協議是無連接的、固定長度的傳輸調用。該協議是不可靠的,使用UDP來進行它的連接。
- SOCK_SEQPACKET該協議是雙線路的、可靠的連接,發送固定長度的數據包進行傳輸。必須把這個包完整的接受才能進行讀取。
- SOCK_RAW socket類型提供單一的網絡訪問,這個socket類型使用ICMP公共協議。(ping、traceroute使用該協議)
- SOCK_RDM 這個類型是很少使用的,在大部分的操作系統上沒有實現,它是提供給數據鏈路層使用,不保證數據包的順序
protocol:
- 傳0 表示使用默認協議。
返回值:
- 成功:返回指向新創建的socket的文件描述符。
- 失敗:返回-1,設置errno。
socket()打開一個網絡通訊端口,如果成功的話,就像open()一樣返回一個文件描述符,應用程序可以像讀寫文件一樣用read/write在網絡上收發數據,如果socket()調用出錯則返回-1。對于IPv4,domain參數指定為AF_INET。對于TCP協議,type參數指定為SOCK_STREAM,表示面向流的傳輸協議。如果是UDP協議,則type參數指定為SOCK_DGRAM,表示面向數據報的傳輸協議。protocol參數的介紹從略,指定為0即可。
參考資料:
總結
以上是生活随笔為你收集整理的socket函数介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过文件IO控制硬件设备的方法
- 下一篇: 系统热键冲突怎么修改 修改系统热键冲突方