TCP和UDP的Socket程式設計實驗

2021-10-08 08:23:12 字數 957 閱讀 9853

linux socket 函式庫是從 berkeley 大學開發的 bsd unix 系統中移植過來的。bsd socket 介面是在眾多 unix 系統中被廣泛支援的 tcp/ip 通訊介面,linux 下的 socket 程式設計,除了微小的差別之外,也適用於大多數其它 unix 系統。

socket 的使用,和檔案操作比較類似。如同檔案的讀、寫、開啟、關閉等操作一樣,tcp/ip 網路通訊同樣也有這些操作,不過它使用的介面不是檔案描述符或者 file*,而是乙個稱做 socket 的描述符。類似於檔案操作,對於 socket,也通過讀、寫、開啟、關閉操作來進行網路資料傳送。同時,還有一些輔助的函式,如網域名稱/ip 位址查詢、socket 功能設定等。

這星期的實驗是socket程式設計實驗,我將自己的套在框架下寫的**分享出來。乙份是tcp**,sender向receiver傳送"hello",receiver將"hello"原封不動發回去,sender接收到"hello"後斷開連線,兩個服務同時down。第二份是udp**,receiver監聽自己的埠,sender向receiver傳送0-8的整數,receiver不會對收到了的資訊作確認。傳送完畢後sender down,receiver會繼續監聽。

閱讀接下來的**需要對socket中的函式,socket標誌符等概念十分清楚,其中乙份tcp**經過了詳細的注釋。bind(),listen(),send()......這些socket庫中的函式都需要讀者提前了解他們的功能。

1 #include 2 #include 3 //資料格式轉換

4 #include "net_exp.h"

5 #include 6

7 main()

39 close(ns);

40 close(s);

41 }

想自己修改功能的話,修改原始碼按照我最近寫的乙個隨筆重新編譯即可。比如實現兩個終端或者兩個主機聊天。

原始碼,可執行程式:

TCP和UDP的區別及socket網路程式設計步驟

tcp和udp的區別 1.連線 tcp是面向連線的傳輸層協議,即傳輸資料之前必須先建立好連線。udp無連線。2.服務物件 tcp是點對點的兩點間服務,即一條tcp連線只能有兩個端點 udp支援一對一,一對多,多對一,多對多的互動通訊。3.可靠性 tcp是可靠交付 無差錯,不丟失,不重複,按序到達。u...

Socket 程式設計 TCP 和UDP

三次握手過程 1.建立連線時,客戶端傳送syn包到伺服器,並進入syn sent狀態,等待伺服器確認。2.伺服器收到syn包,反饋乙個syn ack包,進入syn recv狀態。3.客戶端接到伺服器的syn ack包,向伺服器傳送確認包ack,同時進入established狀態,三次握手完成。伺服器...

SOCket和UDP和TCP的區別

1.udp udp是一種不可靠的網路協議。qq用的是這個協議 udp 是user datagram protocol的簡稱,中文名是使用者資料報協議,是 osi 參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是udp的正式規範。udp是osi參考模型...