关于C#,100分+相送。c#中socket编程中,怎么获取接受到得数据长度

2024-11-08 21:49:26
推荐回答(3个)
回答(1):

服务器端向客户端传送文件之前,可以先向客户端传送一个数据大小的值。否则只能累计分包值得到文件数据最终长度

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 接收数据,将数据存入接收缓冲区。

回答(2):

这个.一般都是创建一个缓冲区
byte[] buffer = new byte[1024];
然后通基唤过read循环去填充缓冲区唯陆的.直到read到buffer中指锋顷的为null了..

最后你可以通过总的接受到的数据得到长度.不要妄想在接收完之前能得到数据长度.不现实的.

回答(3):

函数原型:
public int Receive (byte[ ] buffer, int size, Socket FlagssocketFlags)
参数:乎枯buffer 表示接收到的数据的存储位置;渣盯size表示要接收数据的大小;socketFlagst提供socket消息的常数值如顷和,具有允许按位组合其成员值的属性。返回值为发送到socket的字节数。