黑馬程式設計師 多執行緒小結(下)

2021-06-07 21:02:35 字數 1698 閱讀 4909

---------------------- 

windows phone 7手機開發

、.net培訓

、期待與您交流! ----------------------

----------------------socket相關概念---------------------

socket的英文原義是「孔」或「插座」。作為程序通訊機制,取後一種意思。通常也稱為「套接字」,用於描述ip位址和埠,是乙個通訊鏈的控制代碼。(其實就是兩個程序通訊用的)

socket非常類似於**插座。以乙個**網為例。**的童話雙方相當於互相通訊的2個程式,**號碼就是ip位址。任何使用者在通話之前,首先要占有一部**機,相當於對方有乙個固定的socket。然後向對方撥號呼叫,相當於發出連線請求。對於假如在場並空閒,拿起**話筒,雙方就可以正式通話,相當於連線成功。雙方通話的過程,是一方**機發出訊號和對方從**機接收訊號的過程,相當於想socket傳送資料和從socket接收資料。通話結束後,一方掛起**機相當於關閉socket,撤銷連線。

在internet上有很多這樣的主機,這些主機一般執行了多個服務軟體,同時提供集中服務。每種服務都開啟乙個socket,並繫結到乙個埠上,不同的埠對應於不同的服務(應用程式)。

例如:http使用80埠 ftp使用21埠 smtp使用23埠

有兩種型別(tcp、udp):

1.流式socket(stream):

是一種面向連線的socket,針對於面向連線的tcp服務應用,安全,但是效率低。

2.資料報式(datagram):

是一種無連線的socket,對應於無連線的udp服務應用。不安全(丟失,數序混亂,

在接收端要分析重排及要求重發),但效率高。

//socket一般應用模式

1.伺服器端的socket(至少需要兩個)

1. 乙個負責接收客戶端連線請求(但不負責與客戶端通訊)

2. 沒成功接收到乙個客戶端的連線便在服務端產生乙個對應的socket

>在接收到客戶端連線時建立。

>為每個連線成功的客戶端請求在服務端都建立乙個對應的socket(負責和客戶端通訊)。

2.客戶端的socket

1.客戶端socket

>必須指定要連線的服務端位址和埠。

>通過建立乙個socket物件來初始化乙個到伺服器端的tcp連線。

//socket的通許過程

1.伺服器端:

>申請乙個socket

>繫結到乙個ip位址和乙個埠上

>開始監聽,等待接受鏈結

2.客戶端:

>申請乙個socket

>連線伺服器(指明ip位址和埠號)

3. 伺服器端接到連線請求後,產生乙個新的socket(埠號大於1024)與客戶端建立連線並進行通訊,原監聽socket繼續監聽。

-----------------------擴充套件 傳送檔案---------------------

1. 實現傳送檔案

2. 如果接收資料是檔案還是文字?

3. 設計「協議」:

>即: 文字:0+文字(位元組陣列表示)

>檔案:1+檔案的二進位制資訊

---------------------- 

windows phone 7手機開發

、.net培訓

、期待與您交流! ----------------------

黑馬程式設計師 多執行緒小結(上)

windows phone 7手機開發 net培訓 期待與您交流!程序與執行緒 乙個程序至少有乙個執行緒。同乙個程序中的多個執行緒之間可以 併發 執行。執行緒是程式的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的函式。多執行緒是指程式中...

黑馬程式設計師 執行緒小結

asp.net android ios開發 net培訓 期待與您交流!說到執行緒還得先說下實現方式兩種實現runnable 介面 與 繼承thread類 例項分析 public class threadtest class ticketextends thread int num 20 overri...

黑馬程式設計師 多執行緒

windows phone 7手機開發 net培訓 期待與您交流!一 程序與執行緒 l 程序 乙個執行的程式就是乙個程序,程序包括執行中的程式和程式需要用到的記憶體和系統資源 乙個程序至少有乙個執行緒,乙個程序中多個執行緒可以併發執行 l 執行緒 程式中的乙個執行流,每個執行緒都有自己的專有暫存器 ...