瀏覽單個文章
polor
Advance Member
 

加入日期: May 2001
您的住址: 台北
文章: 488
copilot 寫的

製作基於 TCP/IPv4 的檔案直傳軟體是一項複雜的任務,但我們可以從以下步驟開始:

建立TCP客戶端和服務端:

使用 TcpClient 和 TcpListener 類來建立基本的TCP連接。

UDP檢驗碼、CRC、MD5及流量操作:

使用 UdpClient 類來建立UDP連接,用於傳送驗證碼、CRC、MD5等。

設定指定IP位址和端口:

明確指定 IPv4 地址和61250端口。

獲取MAC地址:

使用 NetworkInterface 類來獲取本地和遠程的MAC地址。

跨國傳送:

確保防火牆和路由器配置允許跨國連接。

不需要公網IP:

可以使用 NAT 穿透技術,如UPnP或STUN。

// TCP Server
TcpListener listener = new TcpListener(IPAddress.Parse("192.168.1.1"), 61250);
listener.Start();
TcpClient client = listener.AcceptTcpClient();
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
File.WriteAllBytes("received_file", buffer);
stream.Close();
client.Close();
listener.Stop();

// TCP Client
TcpClient client = new TcpClient("192.168.1.1", 61250);
NetworkStream stream = client.GetStream();
byte[] fileBytes = File.ReadAllBytes("file_to_send");
stream.Write(fileBytes, 0, fileBytes.Length);
stream.Close();
client.Close();

// UDP Checksum
UdpClient udpClient = new UdpClient();
udpClient.Connect("192.168.1.1", 61250);
byte[] crcData = CalculateCRC(fileBytes);
udpClient.Send(crcData, crcData.Length);

// MAC Address
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
if (nic.OperationalStatus == OperationalStatus.Up)
{
Console.WriteLine(nic.GetPhysicalAddress().ToString());
}
}
__________________

舊 2024-10-31, 08:02 PM #3
回應時引用此文章
polor離線中