为什么我的socket传文本文件可以,传图片却不行
发送方
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();
}
}
接受到的文本文件,大小和内容一样。可是如果是图片,大小一样,但是图片却不能看了