日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C语言网络编程:socket函数

發布時間:2023/11/27 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言网络编程:socket函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數描述

  • 頭文件 <sys/types.h> <sys/socket.h>

  • 函數使用int socket(int domain, int type, int protocol);

  • 函數功能:創建一個通信的終點,并返回一個文件描述符來代表通信的終點

  • 函數參數:
    a. domain 代編當前創建的socket文件描述符使用的是哪一個協議族進行通信,這些協議族都包含在sys/socket.h,其中主要的協議族如下:

    • AF_UNIX, AF_LOCAL 本地進程通信
    • AF_INET IPV4網絡傳輸層協議
    • AF_INET6 IPV6網絡傳輸層協議
    • AF_IP IPX-Novell協議
    • AF_NETLINK 內核用戶接口設備
      當前正式得協議族描述已經變為PF_INET。。。
      TCP/IP協議族如下

    b. type函數socket()的參數type用于設置套接字通信的類型,指定使用TCP/IP協議族中的哪個子協議進行通信,主要有SOCKET_STREAM(流式套接字)、SOCK——DGRAM(數據包套接字)

    • SOCK_STREAM 提供有序的、可靠的、雙鏈接的、字節流數據傳輸;主要是用作TCP鏈接時的數據傳輸,此時如果想要使用TCP協議,則將domain設置為AF_INET即可
    • SOCK_DGRAM 支持無鏈接、不可靠的數據傳輸,數據傳輸時定長;主要時用作UDP鏈接時的傳輸
    • SOCK_SEQPACKET 提供有序的,可靠的,雙鏈接的數據傳輸通道,數據長度定長,使用的時候需要將數據全部讀出
    • SOCK_RAW RAW類型,提供原始網絡協議訪問;即此時我們使用的通信協議為IP 協議
    • SOCK_RDM 提供可靠的數據報文,不過可能數據會有亂序
    • SOCK_PACKET 當前通信類型已經過時,不應在通信程序中使用
    • SOCK_NOBLOCK 將socket返回的文件描述符指定為非阻塞的,類似SOCK_STREAM | SOCK_NOBLOCK 表示使用面向鏈接的數據傳輸同時非阻塞
    • SOCK_CLOEXEC 表示一旦進程執行exec系統調用之后,將會自動關閉socket返回的套接字文件描述符

    c. protocol 特例化來一個協議,用來指定協議號
    一般情況下protocol寫0,表示使用domaintype指定的協議,不過如果domaintype所指定的協議有好幾個時,此時就需要通過具體的協議號來區分,否則寫0即可。
    所有的協議編號都被保存在了/etc/procotols下,tcp協議編號為6,udp協議編號為17

    ip	0	IP		# internet protocol, pseudo protocol number
    hopopt	0	HOPOPT		# IPv6 Hop-by-Hop Option [RFC1883]
    icmp	1	ICMP		# internet control message protocol
    igmp	2	IGMP		# Internet Group Management
    ggp	3	GGP		# gateway-gateway protocol
    ipencap	4	IP-ENCAP	# IP encapsulated in IP (officially ``IP'')
    ...
    

    類似如下
    socket (AF_INET, SOCK_STREAM,6);socket (AF_INET, SOCK_STREAM,0);都代表tcp協議

代碼舉例

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <errno.h>void print_err(char *str, int line, int err_no) {printf("%d, %s :%s\n",line,str,strerror(err_no));_exit(-1);
}int main()
{int skfd = -1;/*創建使用TCP通信的套接字文件描述符*/skfd = socket(AF_INET, SOCK_STREAM, 0);if ( -1 == skfd) {print_err("socket failed",__LINE__,errno);}return 0;
}

總結

以上是生活随笔為你收集整理的C语言网络编程:socket函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 悟空影视大全免费高清观看在线 | 国内自拍xxxx18 | 亚洲国产欧美日韩在线 | 嫩草在线观看 | 干美女av| 国产精品啊啊啊 | 欧美激情一级精品国产 | 日韩在线毛片 | 久久久无码一区二区三区 | 亚洲久视频 | 波多野结衣在线视频播放 | 国内一区二区视频 | 99视频99 | 无码人妻精品一区二区蜜桃视频 | 色悠悠在线视频 | 欧美视频不卡 | 青青草好吊色 | 午夜极品| 韩国三级中文字幕 | julia一区二区中文久久97 | 亚洲小视频在线播放 | 九一在线视频 | 亚洲搞av | 久久一| 天天操天天舔天天干 | 日韩三级小视频 | 日本免费黄色片 | 中文字幕不卡在线播放 | 音影先锋av资源 | www.av天天 | 日韩在线观看视频一区二区三区 | 狠狠ri| 色综合一区二区三区 | 先锋影音一区二区三区 | 亚洲成人黄色片 | 免费看一级黄色大全 | 日本少妇激情 | 中文字幕123 | 操操操视频 | 98堂 最新网名 | 日韩精品免费一区二区 | 日韩精品二区在线观看 | 免费在线中文字幕 | 特黄在线 | 有码一区二区三区 | 亚洲三级免费 | 久久不卡视频 | 精品少妇人妻av一区二区 | aaaa黄色片 | 久久99草| 国产夫妻久久 | 在线播放国产视频 | 亚洲天堂福利视频 | 嫩草免费视频 | 国产精品久久久毛片 | 亚洲国产精品国自产拍av | aa黄色大片| 国产免费a视频 | 日韩成人免费在线视频 | 亚洲一区二区观看 | 国产十八熟妇av成人一区 | 日韩国产毛片 | 手机在线免费av | 精品乱码一区二区三四区视频 | 亚洲av无码专区在线播放中文 | 91色国产| 天堂在线1 | 中文成人无字幕乱码精品区 | 国产在线播放网站 | 福利av在线 | 男人天堂新地址 | 亚洲天堂第一页 | 大度亲吻原声视频在线观看 | 亚洲国产成人精品一区二区三区 | 免费在线观看av的网站 | 亚洲免费视频一区 | 亚洲精品在线视频免费观看 | 中文字幕人妻色偷偷久久 | 午夜精品久久久久久久久久久久久蜜桃 | 国内一区二区视频 | 调教小屁屁白丝丨vk | 日韩欧美毛片 | av一级久久 | 亚洲风情亚aⅴ在线发布 | 色综合久久88色综合天天免费 | 国产精品777 | 亚洲图片小说视频 | 免费av免费观看 | 黄色一级片在线看 | 欧美 日韩 人妻 高清 中文 | 一区精品在线观看 | 日韩欧洲亚洲AV无码精品 | 青娱乐av| 婷婷影音 | 裸体女人a级一片 | 国产精品永久在线观看 | 激情视频久久 | 男女扒开双腿猛进入爽爽免费 | 欧美日韩久|