日期:2014-05-17  浏览次数:20999 次

关于ASP使用SOCK发送报文的问题
我想在ASP   中使用SOCK方法向另一个SERVER的监听端口发送信息,信息是BYTE数组格式.我使用了一些SOCK组件但是都不可以发送BYTE数组.使用WINSOCKAPI但是没有办法接收返回信息.

如何解决?高手帮忙!!!!!!

------解决方案--------------------
asp是没有办法做到的,除非你开发出客户端插件,而且用户愿意安装到自己的机器上
------解决方案--------------------
WINSOCKAPI但是没有办法接收返回信息

你要接收就要侦听,不是asp网页该做的事,可以做个托盘或者是windows service在那里摆着,用个xml或数据库做跟asp文件的传输数据的介质
------解决方案--------------------
接收数据,直接迭代网络事件好了,
WSANETWORKEVENTS events;
events.lNetworkEvents & FD_READ
可以采用映射FD_READ到你的函数里面 比如OnRead()
在函数内部先设定socket为读取状态后,确定相应的缓冲字节数,你可以如下判断:
DWORD dwSize = 0;
int nRet = ioctlsocket(m_hSocket, FIONREAD, &dwSize); // m_hSocket为SOCKET类型
然后你new 一个BYTE数组,用recv接收,长度为dwSize
再怎么处理,无非是协议效验(可通过CRC),错误包, "粘包 "处理。