【发布时间】:2012-10-13 03:53:24
【问题描述】:
这是我在这个论坛上发布的第一个问题,我是 c# 世界的初学者,所以这对我来说有点令人兴奋,但是我在通过套接字发送大量数据时遇到了一些问题,所以这个是关于我的问题的更多详细信息:
我正在通过 TCP 套接字发送 5 Mo 的二进制图像,在接收部分我正在保存结果(接收到的数据)并且只得到 1.5 Mo ==> 数据已丢失(我比较了原始和生成的文件,它向我展示了丢失的部分) 这是我使用的代码:
private void senduimage_Click(object sender, EventArgs e)
{
if (!user.clientSocket_NewSocket.Connected)
{
Socket clientSocket_NewSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
user.clientSocket_NewSocket = clientSocket_NewSocket;
System.IAsyncResult _NewSocket = user.clientSocket_NewSocket.BeginConnect(ip_address, NewSocket.Transceiver_TCP_Port, null, null);
bool successNewSocket = _NewSocket.AsyncWaitHandle.WaitOne(2000, true);
}
byte[] outStream = System.Text.Encoding.ASCII.GetBytes(Uimage_Data);
user.clientSocket_NewSocket.Send(outStream);
}
在论坛上他们说将数据分成块,这是一个解决方案,如果是我该怎么做,我试过了,但它没有用!
【问题讨论】:
-
在这里看看这个答案,应该对你有帮助:stackoverflow.com/a/5934816/559144 :)