黑馬程式設計師 網路程式設計二

2021-06-16 16:38:16 字數 1972 閱讀 3572

asp.net+android+io開發s、.net培訓、期待與您交流!

一、例項tcp實現上傳,對需求的分析

客戶端:1、建立socket服務

2、讀取客戶端已有的資料,這裡只能用位元組流運算元據

3、通過socket輸出流將資料傳送到伺服器端,並將資料轉化為資訊

4、讀取伺服器返饋的資訊

5、關閉

一下為客戶端的**:

//1,建立socket服務

s = new socket(inetaddress.getlocalhost(),10006);

//2、將轉化為位元組流,並寫入到socket的輸出流中

s.shutdownoutput();//3、設定結束標記為-1

//4、讀取服務端的回應資訊

inputstream in = s.getinputstream();

byte bufin = new byte[1024];

while((len = in.read(bufin))>0)

伺服器端:1、建立socket服務,這時使用serversocket,並獲得客戶端的socket物件

2、利用客戶端socket物件獲得輸入流,並將輸入流資訊,輸出到fileoutputstream物件中

3、給客戶端回應相關資訊

4、關閉連線資源

server端**:

//1、建立socket服務,這時使用serversocket,並獲得客戶端的socket物件

ss = new serversocket(10006);

socket s = ss.accept();

//2、利用客戶端socket物件獲得輸入流,並將輸入流資訊,輸出到fileoutputstream物件中

//3、給客戶端回應相關資訊

outputstream out = s.getoutputstream();

out.write("上傳成功".getbytes());

// 4、關閉連線資源

fos.close();

s.close();

二、如何解決服務端因乙個連線而造成的等待現象

利用多執行緒實現多個客戶端同時上傳檔案,並將檔案按照ip位址分開,如果檔案已存在,則將檔名用計數的方式分開,由上面server端的**我們知道在每次建立客戶端物件後會產生等待問題,所以我們將客戶端物件所坐的動作放到執行緒中去,這樣可以實現客戶併發的向服務端傳送

執行緒**

private socket s;

picthread(socket s)

public void run()

三、簡單的伺服器實現

利用多執行緒與socket技術實現簡單的伺服器,使用多執行緒技術,可以被多使用者訪問

ss = new serversocket(10100);

while(true)

多執行緒部分class serverthread implements runnable

@override

public void run()

file.close();//4、關閉流資源

asp.net+android+ios開發、.net培訓、期待與您交流!

黑馬程式設計師 網路程式設計

asp.net android ios開發 net培訓 期待與您交流!1.套接字 socket 用於描述 ip位址和埠,是乙個通訊鏈的控制代碼 就是兩個程式通訊用的 類似於 2.有兩種型別 流式socket 是一種面向連線的 socket 針對於面向連線的 tcp服務應用,安全,但效率低 資料報式 ...

黑馬程式設計師 網路程式設計

asp.net android ios開發 net培訓 期待與您交流!1 網路程式設計 1 網路程式設計 通過程式語言實現計算機鍵的資料通訊。2 網路程式設計的三要素 a ip位址。網路中每一台計算機的唯一標識。b 埠 用於標識程序的邏輯位址 c 協議 定義通訊規則 舉例 我要和小青說話。a 找到小...

黑馬程式設計師 網路程式設計

asp.net unity開發 net培訓 期待與您交流!網路傳輸過程 1,找到對方ip 2,資料傳送到指定埠 每個應用程式對應乙個埠 3,定義通訊規則,即協議 tcp ip tcp 1,面向連線,形成傳輸資料的通道 像打 2,連線中進行大量資料量傳輸 3,可靠協議,三次握手,4,必須建立連線,效率...