創(chuàng)建套接字

創(chuàng)建套接字

    套接字描述符類似于文件描述符,UNIX、Linux把網(wǎng)絡(luò)當(dāng)文件看待卤橄,發(fā)送數(shù)據(jù)即寫文件write佳鳖,接收數(shù) 據(jù)即讀文件read隘梨,銷毀socket對象即關(guān)閉文件close毛俏,在UNIX、Linux系統(tǒng)下一切皆文件。
#include <sys/socket.h>
int socket (int domain, int type, int protocol);
功能:在內(nèi)核中創(chuàng)建一個套接字對象
domain:通信地址類型
AF_UNIX/AF_LOCAL/AF_FILE: 本地通信(進(jìn)程間通信)
AF_INET: 基于IPv4(32位IP地址)的網(wǎng)絡(luò)通信
AF_INET6: 基于IPv6(128位IP地址)的網(wǎng)絡(luò)通信
type:通信協(xié)議類型
SOCK_STREAM: 數(shù)據(jù)流協(xié)議益眉,即TCP協(xié)議
SOCK_DGRAM: 數(shù)據(jù)報協(xié)議,即UDP協(xié)議
protocol:特別通信協(xié)議姥份,一般不用郭脂,置0即可
返回值:成功返回套接字描述符,失敗返回-1

套接字的連接

    當(dāng)socket對象創(chuàng)建好以后澈歉,它并不能立即與其它socket對象無法找到它展鸡,需要把一個地址與它進(jìn)行綁 定,這樣它才能被其它socket對象連接并通信埃难。
// 基本地址類型莹弊,它是socket系列接口的表面參數(shù)涤久,而實際使用的是sockaddr_un或sockaddr_in
struct sockaddr
{
sa_family_t sa_family; // 地址類型,與創(chuàng)建socket對象時的domain參數(shù)一至即可
char sa_data[14]; // 它是只是占位而已
};
// 本地地址類型
#include <sys/un.h>
struct sockaddr_un
{
sa_family_t sun_family;
char sun_path[]; // 套接字文件路徑
};
// 網(wǎng)絡(luò)地址類型
#include <netinet/in.h>
struct sockaddr_in
{
sa_family_t sin_family;
in_port_t sin_port; // 端口號忍弛,用于區(qū)分通信方的進(jìn)程响迂,1024~65535
struct in_addr sin_addr; // IP地址
};
struct in_addr
{
in_addr_t s_addr; // 32位IPv4地址
};
typedef uint32_t in_addr_t;
#include <sys/socket.h>
int bind (int sockfd, const struct sockaddr* addr,socklen_t addrlen);
功能:將套接字和通信地址綁定在一起
addr:sockaddr_un、sockaddr_in結(jié)構(gòu)變量的地址
addrlen:地址結(jié)構(gòu)變量的字節(jié)數(shù)细疚,便于bind區(qū)分用戶提供的是sockaddr_un或sockaddr_in
返回值:成功返回0蔗彤,失敗返回-1
#include <sys/socket.h>
int connect (int sockfd, const struct sockaddr* addr,socklen_t addrlen);
功能:socket對象A連接socket對象B
sockfd:socket對象A的描述符,也就是連接的發(fā)起者
addr:socket對象B的通信地址疯兼,socket對象B必須與該通信地址綁定過
addrlen:地址結(jié)構(gòu)變量的字節(jié)數(shù)
返回值:成功返回0然遏,失敗返回-1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吧彪,隨后出現(xiàn)的幾起案子待侵,更是在濱河造成了極大的恐慌,老刑警劉巖姨裸,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秧倾,死亡現(xiàn)場離奇詭異,居然都是意外死亡啦扬,警方通過查閱死者的電腦和手機中狂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扑毡,“玉大人,你說我怎么就攤上這事盛险∶樘” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵苦掘,是天一觀的道長换帜。 經(jīng)常有香客問我,道長鹤啡,這世上最難降的妖魔是什么惯驼? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮递瑰,結(jié)果婚禮上祟牲,老公的妹妹穿的比我還像新娘。我一直安慰自己抖部,他們只是感情好说贝,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慎颗,像睡著了一般乡恕。 火紅的嫁衣襯著肌膚如雪言询。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天傲宜,我揣著相機與錄音运杭,去河邊找鬼。 笑死函卒,一個胖子當(dāng)著我的面吹牛县习,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谆趾,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼躁愿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沪蓬?” 一聲冷哼從身側(cè)響起彤钟,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跷叉,沒想到半個月后逸雹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡云挟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年梆砸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片园欣。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡帖世,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沸枯,到底是詐尸還是另有隱情日矫,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布绑榴,位于F島的核電站哪轿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏翔怎。R本人自食惡果不足惜窃诉,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赤套。 院中可真熱鬧飘痛,春花似錦、人聲如沸于毙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唯沮。三九已至脖旱,卻和暖如春堪遂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背萌庆。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工溶褪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人践险。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓猿妈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巍虫。 傳聞我的和親對象是個殘疾皇子彭则,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 前言 Google Play應(yīng)用市場對于應(yīng)用的targetSdkVersion有了更為嚴(yán)格的要求。從 2018 年...
    申國駿閱讀 64,273評論 14 98
  • 《來,我們說說孤獨》 1·他們都在寫孤獨 一個詩人 如果 不說說 內(nèi)心的孤獨 不將孤獨 寫進(jìn)詩里 是不是很掉價呢 ...
    聽太陽升起閱讀 4,379評論 1 7
  • 自幼貧民窟長大的女子瓦胎,僥幸多念了兩本書芬萍,枉以為可以與人平起平坐∩Π。可是人生從來都是接力賽柬祠,我們卻天真的當(dāng)成了百米沖刺...
    Leeanran閱讀 5,777評論 1 5
  • 云舒老師,姓甚名誰负芋,男的女的漫蛔,多大歲數(shù),這些我全然不知示罗。之所以要寫寫云舒老師惩猫,完全是因為他寫的文章,如一個巨大的磁...
    數(shù)豆者m閱讀 2,359評論 6 9
  • """1.個性化消息: 將用戶的姓名存到一個變量中蚜点,并向該用戶顯示一條消息。顯示的消息應(yīng)非常簡單拌阴,如“Hello ...
    她即我命閱讀 2,910評論 0 5