receive的返回值就是实际上接受到的字节数,因为有可能实际上收到的字节数可能比recvBytes.Length小
send的返回值呢就是实际上发送到的字节数
send的返回值呢就是实际上发送到的字节数
解决方案 »
- 请教:C#的共用体运行出错的疑问?
- 求高手帮忙类化个c#的语句
- 在VS2005中如何实现ACCESS子窗体的功能
- 诚心请教高手关于.Net菜单按快捷键自动展出菜单项的问题?在线等......
- $("btnInsert").innerHTML="修改图片" 在页面输出后,怎么是乱码?
- Help:有关DataGrid控件
- 请教用domainUpDown做个时间上下调的,怎么做?给个代码
- 白板问题!!高人救命!!!
- 如何用c#操作access
- 我用2个表连接生成的一个表在DATASET里,如何UPDATE到DATABASE里边去??最好有代码,我用的是VS.NET BATE 2
- 求Winform(C#)的图表组件
- 高分求,有一定难度的问题!高手请进!顶也有分!
private int FileTransfer(string FileName,string FilePath)
{
string AllFileName=FilePath+FileName;
if (ComSocket==null||ComSocket.Available==0)
{
return -1;
}
if (Directory.Exists (FilePath)==false)
{
Directory.CreateDirectory (FilePath);
}
if (ComSocket.Poll (100,SelectMode.SelectRead)==true)
{
///////////////First get size of file
int RecvBytes=1;
byte[] VlFileSize=new byte[16];
RecvBytes=ComSocket.Receive (VlFileSize,0,VlFileSize.Length ,
SocketFlags.None );
RecvBytes=0;
string StrFileSize=Encoding.ASCII .GetString (VlFileSize);
StrFileSize=GetString(StrFileSize);
long FileSize=Convert.ToInt32 (StrFileSize);
this.SendInfo ("RCFLSIZE");
///////////////Transfer a file
this.textstate.Text ="File Transferring";
byte[] FileBuffer=new byte [FileSize];
byte[] TpBfFile=new byte[8];
while (RecvBytes<FileSize )
{
int a=ComSocket.Receive (TpBfFile,0,
TpBfFile.Length ,SocketFlags.None );
Array.Copy (TpBfFile,0,FileBuffer,RecvBytes,a );
RecvBytes+=a;
}
FileStream fs=File.Create (AllFileName);
BinaryWriter bw=new BinaryWriter (fs);
bw.Write (FileBuffer);
bw.Close (); this.SendInfo ("RCFLTRANS");
this.textstate.Text ="Written Successfully";
return 100;
}
return 2;
}