服务器端向客户端传送文件之前,可以先向客户端传送一个数据大小的值。否则只能累计分包值得到文件数据最终长度
receive方法中的几个重载都是什么誉州兆啊
------------------------------------
完全可以自己看MSDN
Socket.Receive (Byte[]) 从绑定的 Socket 套接字接收数据,将数据存入接收缓冲区。
由 .NET Compact Framework 支持。
Socket.Receive (泛型 IList) 从绑定的 Socket 接收数据,将数据存入接收缓冲区列表中。
Socket.Receive (Byte[], SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将数据存入接收缓冲区。
由 .NET Compact Framework 支持。
Socket.Receive (泛型 IList, SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将数据存入接收缓冲区列表中。
Socket.Receive (Byte[], Int32, SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收指定字节数的数据,并将数据存入接收缓冲区。
由 .NET Compact Framework 支持。
Socket.Receive (泛型 IList, SocketFlags, SocketError) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将迹胡数据存入接收庆租缓冲区列表中。
Socket.Receive (Byte[], Int32, Int32, SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收指定的字节数,存入接收缓冲区的指定偏移量位置。
由 .NET Compact Framework 支持。
Socket.Receive (Byte[], Int32, Int32, SocketFlags, SocketError) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将数据存入接收缓冲区。
这个.一般都是创建一个缓冲区
byte[] buffer = new byte[1024];
然后通基唤过read循环去填充缓冲区唯陆的.直到read到buffer中指锋顷的为null了..
最后你可以通过总的接受到的数据得到长度.不要妄想在接收完之前能得到数据长度.不现实的.
函数原型:
public int Receive (byte[ ] buffer, int size, Socket FlagssocketFlags)
参数:乎枯buffer 表示接收到的数据的存储位置;渣盯size表示要接收数据的大小;socketFlagst提供socket消息的常数值如顷和,具有允许按位组合其成员值的属性。返回值为发送到socket的字节数。