char recvbuff[1024];
int ret,
nLeft,
idx;nLeft = 512;
idx = 0;while (nLeft > 0)
{
ret = recv(s, &recvbuff[idx], nLeft, 0);
if (ret == SOCKET_ERROR)
{
// Error
}
idx += ret;
nLeft -= ret;
}
《windows网络编程》
int ret,
nLeft,
idx;nLeft = 512;
idx = 0;while (nLeft > 0)
{
ret = recv(s, &recvbuff[idx], nLeft, 0);
if (ret == SOCKET_ERROR)
{
// Error
}
idx += ret;
nLeft -= ret;
}
《windows网络编程》
public static Byte[] Receive(Socket socket)
{
int size = 1024 * 100;
int byteCount;
Byte[] msg = new Byte[size];
//bool isData = false;
//socket.ReceiveBufferSize = size;
int bufslen = 0; int count = 0;
byte[] buf = new byte[5 * 1024];
do
{try
{ byteCount = socket.Receive(buf, SocketFlags.None);
}
catch (SocketException exception)
{
// Debug.WriteLine("receive flags SocketException error" + exception.ErrorCode);
//return messageBody;
throw exception;
}
catch (Exception exception2)
{
//Debug.WriteLine("receive flags Exception error" + exception2.Message); // return messageBody; throw exception2;
}
//if (byteCount != 0)
// isData = true;
if (byteCount > 0)
{
for (int i = 0; i < byteCount; i++)
{
msg[1024 * count + i] = buf[i];
} bufslen += byteCount; count += 1; } }
while (byteCount > 0);
//if (bufslen != 0)
// byteCount = socket.Receive(msg, 0, socket.Available, SocketFlags.None);
//if (byteCount != 0)
return msg
}
{
for (int i = 0; i < byteCount; i++)
{
msg[1024 * count + i] = buf[i];
} bufslen += byteCount; count += 1; }
//能确定每次发过和接收的数据都是1024B?(除去最后一次.)
//如果不是,会出现数据不完整.
在 System.Runtime.Serialization.SerializationException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.Serialization.SerializationException 中第一次偶然出现的“MessageCommon.dll”类型的异常
client socket application Exception error输入流是无效的二进制格式。开始内容(以字节为单位)是: 74-61-53-65-74-3E-0D-0A-20-20-20-20-3C-54-61-62-6C..
不过是在remoting的服务器回调客户端事件中,也是有些郁闷没有解决
不过是在remoting的服务器回调客户端事件中,也是有些郁闷没有解决