Top Banner
在 Ad-hoc 在在在在在在在在在在 在在在在在在在
23

在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

在 Ad-hoc 網路中實現點對點發送訊息與廣播訊息

Page 2: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

檔案下載 範例程式可在下列網址取得

http://www.cc.chu.edu.tw/~m09702044/ADHOC/DEMO_Code.zip http://ppt.cc/Oyj!

DEMO 程式可在下列網址取得 http://www.cc.chu.edu.tw/~m09702044/ADHOC/UDP_Demo.exe http://ppt.cc/P57f

投影片可在下列網址取得 http://www.cc.chu.edu.tw/~m09702044/ADHOC/ADHOCUDP.pptx http://ppt.cc/W@54

Page 3: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

目的 在 Ad-hoc 網路中實現點對點發送訊息與廣播訊息。 使用 UDP 通訊協定與網路服務通訊。 利用 UdpClient 類別, UdpClient 類別的屬性和

方法摘要了建立 Socket 以使用 UDP 要求與接收資料時,所需的詳細資料。

Page 4: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

程式介面 使用者輸入

textBox2 textBox3 textBox4 richTextBox3

Page 5: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

命名空間和定義 using System.Net; using System.Net.Sockets;

Page 6: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

程式介面

Page 7: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

本機 IP 位址 可利用本機的 hostname 來取得 IP address 取得 hostname

String LocalHostName = Dns.GetHostName() 取得 IP address

IPHostEntry ipInfor = Dns.GetHostEntry(LocalHostName)

Page 8: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

程式介面

Page 9: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

開始監聽 (button1) 設定通訊埠。 (port) 新建立 UdpClient 並監聽通訊埠等待接收訊息。

(receivingUdpClient = new ???)

設定 client 的 IPEndPoint ,允許接收來自任何來源端傳送的訊息。 (RemoteIpEndPoint = new ???)

呼叫 WaitForData() 開始接收資料。

Page 10: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

定義 UdpClient_State 定義 buffer 的大小和目前的 socket

Page 11: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

WaitForData () ( 等待接收資料 )

檢查是否已經接收完訊息: 如果已經接收完訊息

在非同步作業完成時呼叫的回呼方法。 ( 呼叫ReadCallback 來處理接收到的訊息, readAsyCallBack = new ???(???))

Page 12: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

WaitForData () ( 等待接收資料 )

檢查是否已經接收完訊息: 如果尚未接收完訊息

替 Client 新建立 UdpClient_state

開始使用非同步接收來自 client 的訊息。(recvsocket.???(???, ???))

Page 13: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

ReadCallback () ( 處理接收到的訊息 )

建立 UdpClient_state 來處理 client 的回應

結束讀取接收到的訊息。 (bytesRead2 = ???.???.??? (???, ???))

儲存接收到的訊息。 (showtxt)

Page 14: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

ReadCallback () ( 處理接收到的訊息 )

利用跨執行緒的方法輸出訊息。

UpdateUI()

Page 15: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

程式介面

Page 16: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

關閉監聽 (button2) 關閉正在監聽的 socket 。

(receivingUdpClient.???)

Page 17: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

程式介面

Page 18: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

發送訊息至指定的電腦 (button3) 設定連線的目的端資訊。 (remoteIEP = new ???)

新建立 Udpclient 。 (udpClientsend = new ???)

Page 19: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

發送訊息至指定的電腦 (button3) 利用 Encoding.Unicode.GetBytes(string s) ,將

輸入的訊息 (string) 轉換為 byte 。(SendbyteData = ???) ( 例如: " (" + 使用者 + ") 說: \n" + 訊息內容 )

傳送訊息至目的端。 (udpClientsend.???(???, ???, ???))

Page 20: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

程式介面

Page 21: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

發送廣播訊息 (button4) 設定廣播目的地 IPEndPoint 。 (bcastIEP =

new ???)

新建立 broadcast 的 UdpClient 。

(udpClientbsend = new ???)

Page 22: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

發送廣播訊息 (button4) 利用 Encoding.Unicode.GetBytes(string s) ,將

輸入的訊息 (string) 轉換為 byte 。(bcastSendbyteData = ???) ( 例如:“ [ 廣播 ] (" + 使用者 + ") 說: \n" + 訊息內容 )

傳送訊息至目的端。 (udpClientsend.???(???, ???, ???))

Page 23: 在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載 範例程式可在下列網址取得 m09702044/ADHOC/DEMO_Code.zip DEMO 程式可在下列網址取得

示意圖