浅谈ISocket的使用

来源:互联网 发布:大数据要学哪些课程 编辑:程序博客网 时间:2024/06/07 10:00

 

 

    环境: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 

原创粉丝点击