發表文章

目前顯示的是 1月, 2015的文章

在Win7/Win8下傳送UDP廣播封包

在撰寫UDP的應用軟體時,有時候會遇到需要發送廣播封包的需求,而這種情況下,就會選擇使用UDP的方式來傳送,而最簡單的方式就是使用UdpClient來處理了;例如說在不知道對方的IP位置的情況,而對方有做類似IpSearch的功能時,就可以利用廣播的方式讓對方將自己目前的IP位置給傳送回來。 廣播封包的發送通常來說動作就是向255.255.255.255這個廣播位置去做資料的發送,然後再去讀取回送的資料,而本篇筆記主要是在Windows XP跟之後的作業系統(Windows7/WIndows8)之間的差異性 筆者在早期有撰寫了一個簡單的小軟體,來做廣播處理的動作,在發送UDP封包的部分,程式碼大致如下          Dim  bEP  As   New   IPEndPoint ( IPAddress .Broadcast, 4550)         Client =  New   UdpClient (4550,  AddressFamily .InterNetwork)         Client.EnableBroadcast =  True         Client.Send(btySend, btySend.Length,  "255.255.255.255" , 4550)         Threading. Thread .Sleep( CInt (txtDelay.Text))          Do              If  Client.Available > 0  Then                 btyRecv = Client.Receive(bEP)                  If  btyRecv  IsNot   Nothing   AndAlso  btyRecv.Length > 0  Then                      ''處理接收到資料後的事情                  End   If              Else                  Exit Do              End   If          Loop         Client.Client.C