一、原理
二、套接字的定義
其實套接字這個概念很像linux的遠端登入,他是區分服務端和客戶端的。一台伺服器,可以連線乙個客戶,當然也可以是多個。
socket就像是乙個**網路。只有知道區號和**號碼,才能有可能撥通**。接**的人可以同時接多個**,但是打**的人卻只能打給乙個人。這個時候有乙個問題,多個客戶端連線了同乙個服務端,返回的資訊各不相同,那麼,服務端就必須對客戶端做乙個區分。這個不難,服務端會自動給每乙個連線成功的客戶端分配乙個ip和埠,也就是說這個ip和埠客戶端沒辦法自己定義,因為如果是自己定義的,那麼就很有可能會埠衝突。三、套接字的屬性
套接字有三個屬性:域、型別和協議四、客戶端和服務端域:指定套接字通訊中使用的網路介質,最常見的套接字域是af_inet,它指的是internet網路
型別:乙個套接字可能有多種不同的通訊方式
流套接字,流套接字提供乙個有序,可靠,雙向節流的鏈結,流套接字由型別sock_stream指定,它是在af_inet域中通過tcp/ip鏈結實現的,這就是套接字型別(其實就是通訊方式)
與流套接字相反,由型別sock_dgram指定的資料報套接字不建立和維持乙個連線,它對可以傳送的資料長度有限制,資料報作為乙個單獨的網路訊息被傳輸,它可能會丟失,複製或亂序
協議:通常使用預設就可以了(也就是最後乙個引數填0)
其實簡單來說套接字可以理解為乙個ip和埠,是服務端所執行的ip,以及他為接受資訊而監聽的埠。
ps:小菜鳥一枚,大神如果發現表達錯誤,還望多多指正!!
Socket 原理與使用
1.什麼是 tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission control protocol internet protocol 即傳輸控制協議 網間協議,是乙個工業標準的協議集,它是為廣...
socket程式設計原理
if newsock accept mysock.daemonsock,addr,len 1 return 1 accept error.set this socket as a non blocking socket.ioctl newsock,fionbio,flag fd set newsoc...
Socket工作原理
socket可以看成在兩個程式進行通訊連線中的乙個端點,是連線應用程式和網路驅動程式的橋梁,socket在應用程式中建立,通過繫結與網路驅動建立關係。此後,應用程式送給socket的資料,由socket交網路驅動程式向網路上傳送出去。計算機從網路上收到與該socket繫結ip位址和埠號相關的資料後,...