Advance Member
|
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());
}
}
__________________
|