Python - Socket | TCP | SMTP

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ā)郵件時,MUAMTA使用的協(xié)議是SMTP,后面的MTA到另一個MTA用的也是SMTP(Simple Mail Transfer Protocol)
  • 發(fā)郵件時,MUAMDA使用的協(xié)議有兩種:POP(Post office Protocol);IMAP(Internet Message Access Protocol) - 不但能獲取郵件,還能直接操作MDA上存儲的郵件。
11.PythonSMTP支持有emailsmtplib兩個模塊,email負責構造郵件,smtplib負責發(fā)送郵件。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容