socket receive循环读取send来的数据

dreamyxcy dreamyxcy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//send 图片流
public void SendBinary(byte[] b)
{
try
{
socket.Send(b, b.Length, 0);
}
catch (Exception)//如果有异常则退出
{
socket.Close();
}
}
//receive 图片流
public byte[] ReceiveBinary()
{

//Byte[] buffer = new Byte[socket.Available];//一个缓存区
////循环从缓冲区读取数据
//do
//{
// socket.Receive(buffer);
//}
//while (socket.Available > 0);
//return buffer;

//循环从缓冲区读取数据
string receiveData = "";
int recvCount;//每次读取的数据量
int availCount = 0;//获取从网络可以读取的数据量
Byte[] buffer = new Byte[8192];//一个8×1024bits的缓存区
do
{
availCount = socket.Available;

if (availCount < buffer.Length)
{
recvCount = socket.Receive(buffer, availCount, SocketFlags.None);
}
else
{
recvCount = socket.Receive(buffer, buffer.Length, SocketFlags.None);
}

availCount = socket.Available;
if (recvCount > 0)
{
receiveData += Encoding.UTF8.GetString(buffer, 0, recvCount);
}
}
while (availCount > 0);
byte[] b = System.Text.Encoding.UTF8.GetBytes(receiveData);
return b;

}
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
dreamyxcy
C# 111,129 成员 642,540 内容