为什么我的socket传文本文件可以,传图片却不行

zhuxiaojun2002 2006-03-23 05:55:48
发送方
FileStream fs = File.Open(@"C:\1.txt",FileMode.Open,FileAccess.Read);
byte[] fileData = new byte[fs.Length];
fs.Read(fileData,0, Convert.ToInt32(fs.Length));
try
{
socket.Send(fileData,fileData.Length,0);
}

接受方
Int32 port = 1234;
IPAddress ipAddress = Dns.Resolve("localhost").AddressList[0];
TcpListener tcpListener = new TcpListener(ipAddress,port);
tcpListener.Start();
Socket socketForClient = tcpListener.AcceptSocket();
//声明接收返回内容的字符串
string recvStr="";
//声明字节数组,一次接收数据的长度为1024字节
byte[] recvBytes=new byte[200];
//返回实际接收内容的字节数
int bytes=0;
//循环读取,直到接收完所有数据
while(true)
{
bytes=socketForClient.Receive(recvBytes,recvBytes.Length,0);
//读取完成后退出循环
if(bytes<=0)
break;
//将读取的字节数转换为字符串
recvStr+=Encoding.ASCII.GetString(recvBytes,0,bytes);
}
//将所读取的字符串转换为字节数组
byte[] content=Encoding.ASCII.GetBytes(recvStr);
try
{
if (content.Length > 0)
{
Console.WriteLine("start write.....") ;
string fileName="c:/1.txt";
FileStream fs=new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.ReadWrite);
fs.Write(content, 0, content.Length);
fs.Flush();
}
}

接受到的文本文件,大小和内容一样。可是如果是图片,大小一样,但是图片却不能看了
...全文
213 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuxiaojun2002 2006-03-27
  • 打赏
  • 举报
回复
最后一顶
chenzhixin 2006-03-24
  • 打赏
  • 举报
回复
试试2进制打开文件
RUN_ 2006-03-24
  • 打赏
  • 举报
回复
不懂
diandian82 2006-03-23
  • 打赏
  • 举报
回复
//将读取的字节数转换为字符串
recvStr+=Encoding.ASCII.GetString(recvBytes,0,bytes);
}
//将所读取的字符串转换为字节数组
byte[] content=Encoding.ASCII.GetBytes(recvStr);


我觉得这地方有问题

111,119

社区成员

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

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

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