使用TCP套接字获取损坏的jpg文件

时间:2014-06-05 13:43:30

标签: c# sockets tcp

我正在使用C#,我使用一个Async TCP套接字连接到服务器,目的是服务器每秒向我发送5个图像文件。

我参加了一个关于如何建立套接字连接的教程,所以我认为问题在于ReadCallBack函数。有些jpg很好,但其他的格式是Windows无法打开的,我无法理解为什么。

编辑:在阅读了不同的帖子并寻找更多信息后,我完全改变了制作方法,最后工作正常,如果有人在同一个案例中,我就是这样做的:

StateObject state = (StateObject)ar.AsyncState;
Socket handler = state.workSocket;

int cont = 0;

//i'm not sure why i was receiving a "\" character cathing file name, but this will control that
while (state.buffer[cont] != 0x0a && cont < StateObject.BufferSize)
    cont++;

string inc_file_name = System.Text.Encoding.ASCII.GetString(state.buffer, 0, cont);

FileStream Fs = new FileStream(inc_file_name, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite);

int read_cont;
byte [] read_buffer = new byte [1024];

//till end of incoming file
while ((read_cont = handler.Receive(read_buffer)) > 0)
    Fs.Write(read_buffer, 0, read_cont);

//save file
Fs.Close();

我希望它可以帮到你。 感谢您的评论和帮助。

0 个答案:

没有答案