引一個老師的話:“來網絡中心不懂網絡”。的確在這里學習了近一年,網絡的皮毛都沒摸著,慚愧??!甚至汗顏。
做的項目有網絡的,但一直不屬于我涉及范圍,讓我眼饞羨慕,不過想想自己也不懂,外加也沒個氛圍,從一開始想,到后面不想,甚至到現在有些懶得不想碰了。也只能說明任何一個人,大多像我這樣的,不是機遇沒來找你,而是你與他擦身而過罷了。
今天也閑得發慌,突然想到了,學習一下。
目的:
TCP/IP 所組建網絡的不同機器之間利用客戶/服務器模式建立通信連接。方法:
為建立該連接,開發人員只要提供一些基本的連接信息,其余由操作系統內核來完成。提供哪些信息呢?
以機器A通過 TCP/IP 與機器B進行網絡通信為例,對于機器A來說我們需要知道如下信息:
1、機器B的TCP/IP地址:
2、與機器B中哪一個進程(或軟件系統)聯系。同樣的對于第一個我還可以理解,第二個就不是很清楚。作者緩緩到來,原來使用標準接口的時候,無須定義,因為我們知道和誰進行交互,然而使用其它的則沒有那么明了,所以就需要提供第二個參數了。
以上兩個需要提供的參數,在套接字中分別表示為機器B的地址和機器B的通信端口。通過在同一機器的不同通信軟件中定義不同端口地址,來表示機器A是與機器B中哪套系統通信。不管是利用何種協議,完全建立一個網絡連接需要五個基本信息。它們分別是雙方的地址、約定的通訊端口和協議類型。SOCKET 通信編程接口并不是專門為 TCP/IP 通信提供的,因此套接字通信編程需要在參數中指明通信協議類型。套接字是利用客戶/服務器模式來實現通信的,客戶端軟件和服務器端軟件的具體實現也有所不同。
具體來說,在客戶端利用基于 TCP/IP 和 SOCKET 通信編程的基本步驟是:
① 聲明一個套接字類型的變量,需要在該變量定義中提供本機 IP 地址和通信端口并指明協議類型,由于在此介紹的是基于 TCP/IP 的套接字通信,因此協議類型應該是 TCP/IP,在編程接口中該類型用 AF-INET 來表示;
② 向對方發出連接請求,連接時編程者需要提供對方 TCP/IP 地址和通信端口,同時 SOCKET 實現程序自動向對提供本機 TCP/IP 地址和通信端口;
③ 如果連接成功,會收到對方的應答信號,這以后的通信就可以通過套接字的相關操作來實現了。
步驟:第一步是要聲明一個套接字類型的變量,并在該變量定義中提供本機的IP地址、通信端口和協議類型。
第二步向對方發送連接請求。此時需要知道對方的地址和端口,并向對方提供地址和通信端口。
看起來挺簡單的,今年一月份還想做一個代理服務器的小程序,一直搞不清楚怎么回事,最后作罷。
努力呀。
學習內容的來源:
http://zeuscn.net/studio/2007/09/14/tcp-ip-socket/
posted on 2008-08-01 15:09
Sandy 閱讀(972)
評論(0) 編輯 收藏 引用 所屬分類:
雜項學習