Socket網路程式設計—簡單聊天軟體--1、什麼是Socket及通訊軟體設計思路
.Net平臺Socket網路程式設計:Socket又稱"套接字",應用程式通常通過"套接字"向網路發出請求或者應答網路請求。
Socket就像現實生活中的電話,人與人之間可以通過電話與對方通訊,那麼應用程式就通過Socket來進行通訊。我們要通過電話聯絡上對方必須得滿足三個要求:1,雙方都有電話;2,要聯絡的一方必須知道對方的電話號碼;3,雙方都必須連線上總伺服器;同樣的,兩個應用程式之間要實現通訊也必須滿足3個類似要求:1,雙方都要有用於通訊的Socket;2,要請求通訊的應用程式必須知道對方應用程式的IP地址及埠號;3,雙方應用程式必須都連線上伺服器。
下面圖片是Socket的伺服器/客戶端的應用模式:
伺服器至少要有兩個Socket,一個監聽Socket,其餘的為通訊Socket,監聽的Socket只是用來監聽客戶端發來的要求接入請求,一旦接收到客戶端發來的接入請求就建立一個相應的通訊Socket用於跟該接入的客戶端進行通訊。
客戶端至少需要一個Socket作為通訊Socket,用於與伺服器進行通訊。
這裡舉一個通俗易懂的例子來理解通訊Socket與監聽Socket。假設在一個大學裡有一棟女生宿舍,將這棟宿舍看做一個伺服器,裡面的宿管阿姨就相當於監聽Socket,宿舍里居住的女生就是通訊Socket。這時候外面一個男生(客戶端的通訊Socket)要求宿舍中某個女生下來聊天,這個時候負責監聽的
========================================================
理解了什麼是Socket後,我在這裡利用Socket的伺服器/客戶端的應用模式寫一個簡單的通訊軟體。下面是設計思路: