环境:brew sdk3.0中文版 + vc6.0
参考资料:示例程序netdiagnostics
用ISocket建立tcp连接。具体步骤如下:
1.创建名为mysocket的brew应用程序,mif中选上“网络”权限;
//名字采用小写是保守了一点,其实3.0中已经可以区分大小写了
//不选网络权限的话,无法使用socket连接
2.AEEClsCreateInstance()不用改;
3.在FreeAppData中添加ISOCKET_Release()关闭套接字;
//这是只运行一次就释放的情况,如果需要,可以在别处释放
4.在InitAppData中调用ISHELL_CreateInstance()创建INetMgr接口的实例,并处理失败;
//这句很重要,一定要有
//对IShell的使用要小心
//如果程序一运行就报错,然后退出,很有可能问题就在这里。设断点诊断
5.在HandleEvent中调用Start();
//start是实现功能的开始
6.Start()中,初始化一些需要的自定义变量,准备要发送的数据,调用INETMGR_OpenSocket(),处理失败;
7.若OpenSocket成功,调用ISOCKET_Connect()建立与网络实体(应用程序将与其通信)的TCP套接字连接;
8.若ISOCKET_Connect成功,用GetHostByName()解析目标地址;
//在这里之前,要设置好目标ip,端口号
//ip直接写就行,用引号;端口号比如8080,写成NTOHS(8080)
9.若GetHostByName成功,调用ISOCKET_Write(),处理异常;
//在返回AEE_NET_WOULDBLOCK的情况下,调用ISOCKET_Writeable()
10.判断信息发送完毕;
//通过比较已传输的字节数和原信息的字节数
11.调用ISOCKET_Read();
//在返回AEE_NET_WOULDBLOCK的情况下,调用ISOCKET_Readable()
10.接收全部数据。
附上我经常遇到的错误:
0x212:Connection attempt timed out
0x216:Network subsystem unavailable