using system;
using system.net.sockets;
using system.net ;
using system.io ;
using system.windows.forms;
using system.text;
namespace p2p.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)
fs.write(buf,0,ilen) ;
return true ;
}catch(exception err)
finally
}}//end class
}//end namespace
C UDP傳送接收檔案 BMP
傳送檔案 include include include include pragma comment lib,ws2 32.lib define dest port 3000 define max data 51200 50kb define dest ip address 127.0.0.1 1...
Linux c udp按包傳送接收檔案
我最近寫乙個專案的時候需要涉及到udp傳輸檔案 網上找了找發現沒什麼合適的,那麼我就寫了乙個自己的供參考 首先看源端datasource的main.cpp include udpsocket.h include package.h include include include include in...
利用UDP協議傳送與接收檔案
一 傳送端 初始化winsocket庫 word ver wsadata wsadata ver makeword 1,1 if wsastartup ver,wsadata if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 與本地ip繫結...