socket receive循环读取send来的数据

dreamyxcy 2007-09-10 05:03:13
//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;

}
...全文
392 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingzhuyue 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 dreamyxcy 的帖子:]
//send 图片流
public void SendBinary(byte[] b)
{
try
{
socket.Send(b, b.Length, 0);
}
catch (Exception)//如果有异常则退出
{
socket.Close();

[/Quote]

很好

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧