點對點聊天(傳送 接收檔案)基類

2021-04-20 22:24:56 字數 3365 閱讀 2765

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繫結...