首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

各位哥!问一个C#的网络传输有关问题。代码很少!帮小弟我看上好吗?

2012-08-21 
各位哥!问一个C#的网络传输问题。代码很少!帮我看下好吗??先说代码:是这样的,我有一个发送端和一个接受端,

各位哥!问一个C#的网络传输问题。代码很少!帮我看下好吗??
先说代码:是这样的,我有一个发送端和一个接受端,发送端发送一个图片,接受端接受图片。

问题来了!:接受端接受到了图片,而且大小和发送端那边的本地图片文件一样大。但就是接受过来的图片是损坏的。是那个环节出问题了呢?还是哪些理论上错误的呢?先谢谢各位大哥了!


这个是接受端

C# code
static void Main(string[] args)        {            TcpClient tcp = new TcpClient();            tcp.Connect("127.0.0.1", 9000);            NetworkStream str = tcp.GetStream();            byte[] byy=new byte[8*1024];            System.IO.FileStream fs = new System.IO.FileStream("(1).jpeg", System.IO.FileMode.Create, System.IO.FileAccess.Write);            while(true)            {                int a = str.Read(byy, 0, byy.Length);                if (a > 0)                    fs.Write(byy, 0, a);                else                    break;            }            fs.Close();            str.Close();            string s = Console.Read().ToString();        } 



下面这个是服务端,监听连接,一旦有连接,就给对方发送图片 。
C# code
           IPAddress ip = IPAddress.Parse("127.0.0.1");           TcpListener conn = new TcpListener(ip, 9000);           conn.Start();           TcpClient tcp = conn.AcceptTcpClient();           FileStream fs = File.OpenRead("2012-08-04_15_58_25.Jpeg");           byte[] fsdata = new byte[fs.Length];           NetworkStream str = tcp.GetStream();           str.Write(fsdata, 0, fsdata.Length);           str.Close();           fs.Close();            string s = Console.Read().ToString(); 



问题是:接受过来的图片是损坏的。各位大哥指点一下。

[解决办法]
探讨
FileStream fs = File.OpenRead("2012-08-04_15_58_25.Jpeg");
byte[] fsdata = new byte[fs.Length];

NetworkStream str = tcp.GetStream();
str.Write(fsdata, 0, fsdata.Length);

热点排行