1.什么是Socket?
-
Socket是網絡編程的一個抽象概念。通常我們用一個Socket表示"打開了一個網絡鏈接",而打開一個Socket需要知道目標計算機的IP地址和端口號port,再指定協(xié)議類型即可。
2.大多數鏈接都是可靠的TCP連接。創(chuàng)建TCP連接時,主動發(fā)起連接的叫客戶端,被動響應連接的叫服務器。
3.如何確定服務器的端口號?
- 作為服務器,提供什么樣的服務,端口號就必須固定下來。(80端口是
Web服務的標準端口、SMTP服務是25端口、FTP服務是21端口)
4.SMTP:Simple Mail Transfer Protocol - 簡單郵件傳輸協(xié)議
5.接收從新浪服務器響應的數據

接收數據包含HTTP頭部和具體數據HTML.png
6.服務器
①服務器進程首先需要綁定一個端口來監(jiān)聽來自其他客戶端的連接。如果某個客戶端連接過來了,服務器就與該客戶端建立Socket連接,隨后的通信就是靠這個Socket連接的。
②往往一臺服務器會有大量來自客戶端的連接,如何區(qū)分一個Socket連接是與哪個客戶端綁定的?
- 一個
Socket由四部分組成:服務器地址、服務器端口、客戶端地址、客戶端端口。
7.模擬服務器和客戶端

模擬服務器與客戶端.png

客戶端.png
8.小結
①對于客戶端,要主動連接服務器的IP的指定端口;對于服務器,首先需要監(jiān)聽指定端口,然后,對于每一個新的連接,創(chuàng)建一個線程或進程來處理。
②同一個端口,被一個Sokcet綁定以后,就不能被別的Sokcet綁定了。
9.使用UDP協(xié)議時,不需要建立連接,只需知道對方的IP地址和端口號,就可以直接發(fā)送數據包。但是,能不能到達就不知道了。它的優(yōu)點是速度快。
10.一封電子郵件的旅程:
發(fā)件人 -> MUA -> MTA -> 若干MTA -> MDA <- MUA -<收件人
MUA:Mail User Agent - 郵件用戶代理
MTA:Mail Transfer Agent - 郵件傳輸代理
MDA:Mail Delivery Agent - 郵件投遞代理
-
Email到達MDA后,就會靜靜地躺在某個服務器上,存放在某個文件或特殊的數據庫里,我們將這個長期保存郵件的地方稱之為電子郵箱。 - 發(fā)郵件時,
MUA和MTA使用的協(xié)議是SMTP,后面的MTA到另一個MTA用的也是SMTP(Simple Mail Transfer Protocol) - 發(fā)郵件時,
MUA和MDA使用的協(xié)議有兩種:POP(Post office Protocol);IMAP(Internet Message Access Protocol) - 不但能獲取郵件,還能直接操作MDA上存儲的郵件。