使用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介面...