我正在使用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();
我希望它可以帮到你。 感谢您的评论和帮助。