PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 想請教一個網路程式。
(https://www.pcdvd.com.tw/showthread.php?t=1210748)
|
---|
想請教一個網路程式。
如何用Visual Studio中C#,Visual Basic製作一個基於TCP/IPv4的檔案直傳軟體?
該軟體可以: 一、使用TCP/IPv4的TCP封包遞送想要傳送的檔案。 二、使用TCP/IPv4的UDP封包遞送想要傳送的檔案驗證碼、CRC、MD5及流量的操作。 三、直接使用IPv4之IP Address及61250埠號做為雙方收發送,中間不經過任何軟體中轉的媒介。 四、可以直接取得雙方的MAC Address做為傳送識別。 五、可以跨國傳送。 六、不需要公網IP。 |
這個已經是要寫一個傳檔軟體了吧?
:ase |
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()); } } |
引用:
單純技術討論 如果不需要公網IP又沒有中繼媒介, 那雙方怎麼知道對方在哪裡? |
早就過了要交作業的年紀了吧?
要不要說清楚到底想幹啥? 幫兒子交作業? :confused: |
引用:
這樣說好了… 我對網上的轉傳網路或是網路空間其實很反感,有些是要錢,有些是要容量限制,有些是傳送有大小限制。 這一直讓我回想到Windows 2000跟Windows ME的時代,其實Windows是有內建一個MsgBox的,就是一個在只能在區網傳文字檔案的Messenger。「當然如果當時你的區網是IPX或NetWare的話,其實是可以跨網的,但是一樣不能傳到外網。」 現在流行VPN又有什麼長城大牆,一下要什麼BT一下要什麼Donkey其實超級麻煩。 我就只是想傳個東西,管他是什麼,我只要負責上網,打字,把檔案上傳就可以傳到對方那裡,就如此簡單。 所以想要寫一個 一、能夠超級智障、簡單的傳文字、傳檔案軟體。 二、你只要有對方的IP跟埠號就可以。 三、需要識別雙方Mac Address。 我初步的想法是在臉書或對岸的微博上,寫下加密的傳送資料,接收者只要把傳送資料剪下貼上,就可以取得互連的所有資訊。之後就能直接一對一對口直接傳送。 也可以轉成一種FTP的型式,雙方都建立一個虛擬FTP,一樣只要在臉書或對岸的微博上,寫下加密的傳送資料,接收者只要把傳送資料剪下貼上,就可以取得互連的所有資訊。你把你的訊號傳來我這個虛擬FTP,我把我的訊號傳去你的虛擬FTP就行,直接對連直接互傳。 |
引用:
這些要做起來並不容易,通訊,協定,封包定義,監聽......每個都要手工解決,記得很久以前有linux上的Pidgin好像可以,忘了有沒有支援點對點直連的了 |
引用:
上傳到哪裡? 對方有很多人? 引用:
一 跟 二 or 一 跟 三 可能有衝突 引用:
你寫的軟體(電腦)可能要一直開著, 你寫的軟體也要能散布給對方 如果沒太多要求的話 file.io 是不是能夠接受 (<2GB) https://www.file.io/ 也支援API上傳 |
引用:
主要是想傳到對岸,當然也可以到美國。 因為兩地都有親人跟同事在。 這個上傳的意思就是像微信一樣,把自已想傳的檔案點擊,就會傳過去,不用經過中間的免空之類的。 引用:
如果先把問題縮小到只在自已家的私有網路互通又該怎麼做? 引用:
雙方在對傳的時候當然都是開著電腦不關的。 引用:
這個暫時免了。 引用:
你說的問題,老子閒時間特別多。 |
引用:
其實,如果妳會建立一個HTTPS網站 , 這很容易解決檔案傳輸的問題!! 1. 你先決定好一個網址(假設aaa.com.tw) 2. 再決定好檔案名稱(如何決定檔名,自行決定,暫定 file.dat) 3. 你把檔案下載網址告知對方(by Line / E-mail等) 4. 把檔案傳送到 網站裡 (通常透過FTP / SFTP傳送) 5. 這時就可以告知對方去下載 網址 https://aaa.com.tw/file.dat 就這樣 , 不用花心思去想那些有的沒的 !! 如果怕檔案外洩 , 也有兩個辦法 1. 檔案加密(你可把密碼事先約定好,告知對方) 2. 多一個步驟 , 在你網站哩,去建立一個目錄名稱,只有你們兩個才知道的目錄名稱,暫定 xx00yy22o3o 3. 那麼下載網址就會變成 https://aaa.com.tw/xx00yy22o3o/file.dat 除非是孩子的功課程式 , 那就乖乖寫程式吧!! :ase :ase :ase |
所有的時間均為GMT +8。 現在的時間是03:31 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2024。