TCP/IP 學習 --- 4(linux網路基礎api)

來源:互聯網
上載者:User

標籤:形式   ipv6   null   串連   unsigned   str   windows   計數   表示   

1 sockaddr_in、sockaddr_in6和sockadd_un等都可以強制轉換為sockaddr.

2 IP地址是電分十進位形式的字串,但是在網路中使用的是unsigned int類型的數才能使用。

  1.   in_addr_t inet_addr(const char* strptr);  返回的是ipv4的usigned int類型的地址。
  2.   int inet_aton(const char* cp, struct in_addr* inp);  如果成功返回非零,不成功返回零
  3.  char* inet_ntoa();如果失敗返回NULL,如果成功返回正確的點分十進位地址。
  4.   int net_pton(int af, const char* src, void* dst); 點分十進位轉換成網路地址。適用於ipv4和ipv6
  5. const char* inet_ntop(int af, const void* src, char* dst, socklen_t cnt); 網路位址轉譯成點分十進位地址。適用於ipv4和ipv6

3 函數listen, 第二個參數backlog,表示核心監聽隊列的最大長度,如果超過了設定值+1的數量(在windows下測試是超過設定值的串連,就會串連不上),則伺服器將不受理新的客戶串連。只要不accept,核心隊列中的監聽到的socket數量不會減少.

4 close: 當我們關閉串連時,使用close,其實只是將檔案描述符的引用計數減1,一次fork會使父進程中開啟的問見描述符引用計數加1,所以在這種情況下我們應該對父子進程中的檔案描述符都執行一次close.如果想要直接終止串連,可以使用shutdown函數,參數howto的取值分別為shut_rd, shut_wr和shut_rdwr。

5 msg_oob資料。send和recv函數可以設定訊息選項,當設定為緊急資料時(msg_oob),只能有一個位元組緊急資料,如果發送的訊息是多位元組訊息,只有最有一個位元組是緊急資料。

6 udp發送資料使用sendmsg, 接收資料使用recvmsg,跟send和recv差不多,只不過是socket地址結構的參數。這兩個函數也可以用於tcp,用於tcp時,將後面兩個參數設定為null即可。

TCP/IP 學習 --- 4(linux網路基礎api)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.