原有服务端程序不改。还是 Win32写的服务端。
下面是原客户端的发送代码:
int __tcp_send(SOCKET isocket, BYTE *buffer, int ibuflen)
{
int iRet = 0;
// 判断socket是否有效
if (!tool_isValidSocket(isocket))
{
return errSocket;
}
iRet = send(isocket, (char*)buffer, ibuflen, 0);
return iRet;
}
改写成以下代码后,运行到writer->StoreAsync();就报错,错误信息为“0x02c963f0 L"在意外的时间调用了方法。\r\n"”,附上我改写的代码,请大神们看看是怎么回事。。。
int __tcp_send(StreamSocket^ isocket,BYTE *buffer, int ibuflen)
{
size_t iRet = 0;
auto buff = ref new Array<unsigned char>(buffer,ibuflen);
DataWriter^ writer = ref new DataWriter(isocket->OutputStream);
writer->WriteBytes(buff);
try
{
writer->StoreAsync();
}catch(Exception^ e)
{
String^ err = e->Message;
}
return ibuflen;
}