聞喘socket()痕方幹秀耗俊忖
<貧匯准
和匯准>
壓Linux嶄?匯俳脅頁猟周?茅阻猟云猟周、坿猟周、屈序崙猟周吉?匯倖啣周譜姥匆辛參瓜啌符葎匯倖倡亭議猟周?各葎譜姥猟周。箭泌?stdin 各葎炎彈補秘猟周?万斤哘議啣周譜姥匯違頁囚徒?stdout 各葎炎彈補竃猟周?万斤哘議啣周譜姥匯違頁?塋焼滇6墫數窠亠栂勅顚ii漆敏塋荒? read() 痕方響函方象?聞喘 write() 痕方亟秘方象。
“匯俳脅頁猟周”議房?自寄仇酒晒阻殻會埀議尖盾才荷恬?聞誼斤啣周譜姥議侃尖祥崧噸宥猟周匯劔。侭嗤壓Linux嶄幹秀議猟周脅嗤匯倖 int 窃侏議園催?各葎猟周宙峰憲?File Descriptor?。聞喘猟周扮?峪勣岑祇猟周宙峰憲祥辛參。箭泌?stdin 議宙峰憲葎 0?stdout 議宙峰憲葎 1。
壓Linux嶄?socket 匆瓜範葎頁猟周議匯嶽?才噸宥猟周議荷恬短嗤曝艶?侭參壓利大方象勧補狛殻嶄徭隼辛參聞喘嚥猟周 I/O 屢購議痕方。辛參範葎?曾岬柴麻字岻寂議宥佚?糞縞貧頁曾倖 socket 猟周議屢札響亟。
猟周宙峰憲嗤扮匆瓜各葎猟周鞘凹?File Handle??徽“鞘凹”麼勣頁 Windows 嶄宝囂?侭參云縮殻嶄泌惚膚式欺 Windows 峠岬繍聞喘“鞘凹”?泌惚膚式欺 Linux 峠岬繍聞喘“宙峰憲”。
寄社俶勣芝廖
3) protocol 燕幣勧補亅咏?械喘議嗤 IPPROTO_TCP 才 IPPTOTO_UDP?蛍艶燕幣 TCP 勧補亅咏才 UDP 勧補亅咏。
嗤阻仇峽窃侏才方象勧補圭塀?珊音怎參畳協寡喘陳嶽亅咏宅?葎焚担珊俶勣及眉倖歌方椿?
屎泌寄社侭??匯違秤趨和嗤阻 af 才 type 曾倖歌方祥辛參幹秀耗俊忖阻?荷恬狼由氏徭強容處竃亅咏窃侏?茅掲囑欺宸劔議秤趨?嗤曾嶽音揖議亅咏屶隔揖匯嶽仇峽窃侏才方象勧補窃侏。泌惚厘断音峺苧聞喘陳嶽亅咏?荷恬狼由頁短一隈徭強容處議。
乎縮殻聞喘 IPv4 仇峽?歌方 af 議峙葎 PF_INET。泌惚聞喘 SOCK_STREAM 勧補方象?椎担諾怎宸曾倖訳周議亅咏峪嗤 TCP?咀緩辛參宸劔栖距喘 socket() 痕方?
泌惚聞喘 SOCK_DGRAM 勧補圭塀?椎担諾怎宸曾倖訳周議亅咏峪嗤 UDP?咀緩辛參宸劔栖距喘 socket() 痕方?
貧中曾嶽秤趨脅峪嗤匯嶽亅咏諾怎訳周?辛參繍 protocol 議峙譜葎 0?狼由氏徭強容處竃哘乎聞喘焚担亅咏?泌和侭幣?
“匯俳脅頁猟周”議房?自寄仇酒晒阻殻會埀議尖盾才荷恬?聞誼斤啣周譜姥議侃尖祥崧噸宥猟周匯劔。侭嗤壓Linux嶄幹秀議猟周脅嗤匯倖 int 窃侏議園催?各葎猟周宙峰憲?File Descriptor?。聞喘猟周扮?峪勣岑祇猟周宙峰憲祥辛參。箭泌?stdin 議宙峰憲葎 0?stdout 議宙峰憲葎 1。
壓Linux嶄?socket 匆瓜範葎頁猟周議匯嶽?才噸宥猟周議荷恬短嗤曝艶?侭參壓利大方象勧補狛殻嶄徭隼辛參聞喘嚥猟周 I/O 屢購議痕方。辛參範葎?曾岬柴麻字岻寂議宥佚?糞縞貧頁曾倖 socket 猟周議屢札響亟。
猟周宙峰憲嗤扮匆瓜各葎猟周鞘凹?File Handle??徽“鞘凹”麼勣頁 Windows 嶄宝囂?侭參云縮殻嶄泌惚膚式欺 Windows 峠岬繍聞喘“鞘凹”?泌惚膚式欺 Linux 峠岬繍聞喘“宙峰憲”。
壓Linux和幹秀 socket
壓 Linux 和聞喘 <sys/socket.h> 遊猟周嶄 socket() 痕方栖幹秀耗俊忖?圻侏葎?int socket(int af, int type, int protocol);1) af 葎仇峽怛?Address Family??匆祥頁 IP 仇峽窃侏?械喘議嗤 AF_INET 才 AF_INET6。AF 頁“Address Family”議酒亟?INET頁“Inetnet”議酒亟。AF_INET 燕幣 IPv4 仇峽?箭泌 127.0.0.1?AF_INET6 燕幣 IPv6 仇峽?箭泌 1030::C9B4:FF12:48AA:1A2B。
寄社俶勣芝廖
127.0.0.1?万頁匯倖蒙歩IP仇峽?燕幣云字仇峽?朔中議縮殻氏将械喘欺。
低匆辛參聞喘PF念弸?PF頁“Protocol Family”議酒亟?万才AF頁匯劔議。箭泌?PF_INET 吉勺噐 AF_INET?PF_INET6 吉勺噐 AF_INET6。2) type 葎方象勧補圭塀?械喘議嗤 SOCK_STREAM 才 SOCK_DGRAM?壓ゞsocket頁焚担吭房〃匯准嶄厮将序佩阻初府。
3) protocol 燕幣勧補亅咏?械喘議嗤 IPPROTO_TCP 才 IPPTOTO_UDP?蛍艶燕幣 TCP 勧補亅咏才 UDP 勧補亅咏。
嗤阻仇峽窃侏才方象勧補圭塀?珊音怎參畳協寡喘陳嶽亅咏宅?葎焚担珊俶勣及眉倖歌方椿?
屎泌寄社侭??匯違秤趨和嗤阻 af 才 type 曾倖歌方祥辛參幹秀耗俊忖阻?荷恬狼由氏徭強容處竃亅咏窃侏?茅掲囑欺宸劔議秤趨?嗤曾嶽音揖議亅咏屶隔揖匯嶽仇峽窃侏才方象勧補窃侏。泌惚厘断音峺苧聞喘陳嶽亅咏?荷恬狼由頁短一隈徭強容處議。
乎縮殻聞喘 IPv4 仇峽?歌方 af 議峙葎 PF_INET。泌惚聞喘 SOCK_STREAM 勧補方象?椎担諾怎宸曾倖訳周議亅咏峪嗤 TCP?咀緩辛參宸劔栖距喘 socket() 痕方?
int tcp_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //IPPROTO_TCP燕幣TCP亅咏宸嶽耗俊忖各葎 TCP 耗俊忖。
泌惚聞喘 SOCK_DGRAM 勧補圭塀?椎担諾怎宸曾倖訳周議亅咏峪嗤 UDP?咀緩辛參宸劔栖距喘 socket() 痕方?
int udp_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); //IPPROTO_UDP燕幣UDP亅咏宸嶽耗俊忖各葎 UDP 耗俊忖。
貧中曾嶽秤趨脅峪嗤匯嶽亅咏諾怎訳周?辛參繍 protocol 議峙譜葎 0?狼由氏徭強容處竃哘乎聞喘焚担亅咏?泌和侭幣?
int tcp_socket = socket(AF_INET, SOCK_STREAM, 0); //幹秀TCP耗俊忖 int udp_socket = socket(AF_INET, SOCK_DGRAM, 0); //幹秀UDP耗俊忖朔中議縮殻嶄謹寡喘宸嶽酒晒亟隈。
壓Windows和幹秀socket
Windows 和匆聞喘 socket() 痕方栖幹秀耗俊忖?圻侏葎?SOCKET socket(int af, int type, int protocol);茅阻卦指峙窃侏音揖?凪麿脅頁屢揖議。Windows 音委耗俊忖恬葎噸宥猟周斤棋?遇頁卦指 SOCKET 窃侏議鞘凹。萩心和中議箭徨?
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0); //幹秀TCP耗俊忖
<貧匯准
和匯准>