iT邦幫忙

第 12 屆 iThome 鐵人賽

0
自我挑戰組

學習筆記系列 第 35

C#,UDP、TCP

  • 分享至 

  • xImage
  •  

記錄學習內容。看網路上大大們的文章和影片,做些紀錄。
以下內容大多來自網路上大大們的文章。
還不了解,內容可能有錯誤。

用兩個C# WPF程式 ,分別放到不同的電腦 來溝通 。可以用UPD 或 TCP 。

先複習一下UDP、TCP :

AWS EC2 設定Ubuntu 、了解TCP與UDP、查看封包內容
https://ithelp.ithome.com.tw/articles/10206781

TCP 程式來源:
https://dotblogs.com.tw/kevintan1983/2010/10/15/18348

TCP 筆記:

1

            //取得本機IP
            IPAddress[] ipa = Dns.GetHostAddresses(hostName);
            Debug.WriteLine("本機IP=" + ipa[0].ToString());

但是顯示的會是ipv6的樣子:

fe80::c046...

ipv4參考解答:
Get local IP address
https://stackoverflow.com/questions/6803073/get-local-ip-address
解答2的方式,跟UDP有關。

2

IPAddress.Any 印出來是 0.0.0.0
https://docs.microsoft.com/zh-tw/dotnet/api/system.net.ipaddress?view=netcore-3.1

Any 提供指示伺服器必須在所有網路介面上接聽用戶端活動的 IP 位址。 此欄位為唯讀。

所以這樣寫 是指 在這台電腦所有的ip 的 1234 port 都要監聽 ?

IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 1234);

應該就是這個意思 , 這樣寫的話,這台電腦的所有ip的1234port 都可以連線,

ip錯誤會有:

連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。 [::ffff:192.168.56.3]:1234

port錯誤會有:

無法連線,因為目標電腦拒絕連線。 [::ffff:192.168.56.1]:1235

目前問題:
如果不想寫 IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 1234);
,想要指定ip,而不是IPAddress.Any。 要怎麼辦 ?
參考:
https://docs.microsoft.com/zh-tw/dotnet/api/system.net.ipendpoint?view=netcore-3.1

Best way to create IPEndpoint from string
https://stackoverflow.com/questions/2727609/best-way-to-create-ipendpoint-from-string/12044845

參考解答4:

string serverIP = "192.168.0.1";
int port = 8000;
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse(serverIP), port);

UDP 筆記

程式來源:

C# 基於 UDP-Socket 的 UdpClient 使用方法
https://lolikitty.pixnet.net/blog/post/109168079

Can I set the timeout for UdpClient in C#?
https://stackoverflow.com/questions/2281441/can-i-set-the-timeout-for-udpclient-in-c

UdpClient 類別
https://docs.microsoft.com/zh-tw/dotnet/api/system.net.sockets.udpclient?view=netcore-3.1

其他:
Wireshark 指令 ,看這張圖:
https://packetlife.net/media/library/13/Wireshark_Display_Filters.pdf

如何用wireshark 只看 TCP ?
tcp

如何用wireshark 只看 UDP ?
udp


上一篇
KMP String Matching Algorithm
下一篇
C# dll
系列文
學習筆記46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言