/// <summary>
/// 将文件写到Socket
/// </summary>
/// <param name="s">要发送文件的Socket</param>
/// <param name="strFile">要发送的文件</param>
/// <returns>是否成功</returns>
public static bool WriteFileToSocket(Socket s,string strFile,OnSend OnSendFile)
{
FileStream fs = new FileStream(strFile,FileMode.Open,FileAccess.Read,FileShare.Read) ; int iLen = (int)fs.Length ; WriteDynamicLenToSocket(s,iLen) ;
byte [] buf = new byte[iLen] ;
try
{ fs.Read(buf,0,iLen) ;
return WriteBufToSocket(s,buf,0,iLen,DEALLEN,OnSendFile) ;
} catch(Exception err)
{
MessageBox.Show("发送文件失败!"+err.Message) ;
return false ;
} finally
{ fs.Close() ;
}
}
这是一个别人写好的类
我直接调用
baseClass.CommunClass.WriteFileToSocket(socket,SendFileName,得到文本长度的回调函数)这个不会写了WriteFileToSocket是一个异步传送的方法,里面要用到回调函数,有谁以前也写的,请帮我看下,我在线的,马上结贴的
/// 将文件写到Socket
/// </summary>
/// <param name="s">要发送文件的Socket</param>
/// <param name="strFile">要发送的文件</param>
/// <returns>是否成功</returns>
public static bool WriteFileToSocket(Socket s,string strFile,OnSend OnSendFile)
{
FileStream fs = new FileStream(strFile,FileMode.Open,FileAccess.Read,FileShare.Read) ; int iLen = (int)fs.Length ; WriteDynamicLenToSocket(s,iLen) ;
byte [] buf = new byte[iLen] ;
try
{ fs.Read(buf,0,iLen) ;
return WriteBufToSocket(s,buf,0,iLen,DEALLEN,OnSendFile) ;
} catch(Exception err)
{
MessageBox.Show("发送文件失败!"+err.Message) ;
return false ;
} finally
{ fs.Close() ;
}
}
这是一个别人写好的类
我直接调用
baseClass.CommunClass.WriteFileToSocket(socket,SendFileName,得到文本长度的回调函数)这个不会写了WriteFileToSocket是一个异步传送的方法,里面要用到回调函数,有谁以前也写的,请帮我看下,我在线的,马上结贴的
如委托public delegate void dg1(int a);有一个方法public void method1(int a);
那么就可以用dg1(method1)在函数里调用他。