使用C 進行點對點通訊和檔案傳輸(通訊基類部分)

2021-04-13 08:10:38 字數 4146 閱讀 6640

使用c#

進行點對點通訊和檔案傳輸(通訊基類部分)

最近乙個專案要用到點對點檔案傳輸,俺就到處找資料寫程式,最後終於完成了,為了讓別人少走些彎路,俺決定將俺程式中最重要的部分貢獻出來,希望對大家有所幫助。

俺的程式分三部分,包括傳送部分、接受部分和乙個兩者共享的通訊基類,這個基類才是俺心血的結晶:)

一、通訊基類

using system;

using system.net.sockets;

using system.net ;

using system.io ;

using system.windows.forms;

using system.text;

namespace baseclass

///

///

命令部分的長度

///

private static readonly int cmdlen = 50 ;

///

///

命令注釋部分的長度

///

private static readonly int desclen = 100 ;

///

///

可變長度的長度資訊部分所佔的位元組數

///

private static readonly int dynamiclengthlen = 10 ;

///

///

每次處理可變資訊部分的長度

///

private static readonly int deallen = 1024 ;

///

/// /

應答的最大長度

///

private static readonly int responlen = 20 ;

///

///

用於填充命令或注釋不足長度部分的字元

///

private static readonly char fillchar = '^' ;

///

///

成功傳送一部分資料後的**方法

(也可以認為是觸發的事件,但嚴格來說還不是

) ///

public delegate void onsend(int itotal,int isending) ;

///

///

根據給定的伺服器和埠號建立連線

///

///

伺服器名

///

埠號///

public static socket connecttoserver(string strhost,int iport)

catch (exception e) }

///

///

將文字寫到

socket

中///

///

要傳送資訊的

socket

///

要傳送的資訊

///

是否成功

public static bool writetexttosocket(socket s,string strinfo)

catch(exception err) }

///

///

將命令文字寫到

socket

中///

///

要傳送命令文字的

socket

///

要傳送的命令文字

///

是否成功

public static bool writecommandtosocket(socket s,string strcmd)

///

///

將命令注釋寫到

socket

中///

///

要傳送命令注釋的

socket

///

要傳送的命令注釋

///

是否成功

public static bool writecommanddesctosocket(socket s,string strdesc)

///

///

傳送可變資訊的位元組數

///

///

要傳送位元組數的

socket

///

位元組數///

是否成功

public static bool writedynamiclentosocket(socket s,int ilen)

///

///

將快取的指定部分傳送到

socket

///

///

要傳送快取的

socket

///

要傳送的快取

///

要傳送快取的起始位置

///

要傳送快取的位元組數

///

每次傳送的位元組說

///

每次傳送成功後的**函式

///

是否傳送成功

public static bool writebuftosocket(socket s,byte buf,int istart,int icount,int iblock,onsend sendsuccess)

catch(exception err) }

///

///

將檔案寫到

socket

///

///

要傳送檔案的

socket

///

要傳送的檔案

///

是否成功

public static bool writefiletosocket(socket s,string strfile,

onsend onsendfile)

catch(exception err)

finally }

///

///

對方對自己訊息的簡單回應

///

///

///

public static string readresponsionfromsocket( socket s)

///

///

從socket

讀取命令

///

///

要讀取命令的

socket

///

讀取的命令

public static string readcommandfromsocket( socket s)

///

///

讀取命令注釋

///

///

要讀取命令注釋的

socket

///

讀取的命令注釋

public static string readcommanddescfromsocket( socket s)

///

///

讀取可變部分的長度

///

///

要讀取可變部分長度的

socket

///

讀取的可變部分的長度

public static int readdynamiclenfromsocket( socket s)

///

///

讀取文字形式的可變資訊

///

///

要讀取可變資訊的

socket

///

讀取的可變資訊

public static string readdynamictextfromsocket( socket s)

finally }

}//end class

}//end namespace

上面是俺的通訊基礎類,有了這個類,再進行傳送接受還不是小菜一碟嗎?

使用C 進行點對點通訊和檔案傳輸(通訊基類部分)

最近乙個專案要用到點對點檔案傳輸,俺就到處找資料寫程式,最後終於完成了,為了讓別人少走些彎路,俺決定將俺程式中最重要的部分貢獻出來,希望對大家有所幫助。俺的程式分三部分,包括傳送部分 接受部分和乙個兩者共享的通訊基類,這個基類才是俺心血的結晶 一 通訊基類 usingsystem usingsyst...

使用C 進行點對點通訊和檔案傳輸(傳送接收部分)

上面介紹了通訊的基類,下面就是使用那個類進行傳送和接收的部分 二 傳送部分 傳送咱們使用了多執行緒,可以同時進行多個任務,比如傳送檔案 傳送文字等,互不影響 傳送文字方法 private void startsendtext string strhost,int iport,string strin...

《點對點通訊及檔案傳輸軟體》課程設計

這是大一寫的課程設計。點對點通訊及檔案傳輸軟體 一 軟體分析 軟體主要功能為通訊及檔案傳輸,通訊不侷限於區域網,檔案傳輸功能適合小檔案傳送,傳輸大檔案速度較慢。軟體可以方便的用於校園內 比如宿舍間,宿舍內 的檔案傳送,這樣就解決了xp系統和win7系統的共享難題,也避免了頻繁使用u盤對電腦usb介面...