`

浅谈ISocket的使用

    博客分类:
  • brew
阅读更多

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

分享到:
评论

相关推荐

    基于微信小程序的ISocket智能插座的设计与实现.zip

    《基于微信小程序的ISocket智能插座的设计与实现》 在当今物联网(IoT)时代,智能家居设备已经成为生活的一部分,智能插座作为其中的关键组件,能够帮助用户远程控制家用电器的开关,提升生活便利性。本项目主要探讨...

    基于微信小程序的ISocket智能插座的设计与实现.docx

    ### 基于微信小程序的ISocket智能插座的设计与实现 #### 一、引言 随着科技的进步,智能家居成为越来越多人追求的生活方式。然而,如何让现有的非智能家电也能融入到这一智能化潮流中来,成为了亟待解决的问题。...

    基于微信小程序的ISocket智能插座的设计与实现.pdf

    2. 微信小程序的定义和作用:微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。在本项目中,微信小程序被用作用户交互界面,提供远程控制家电的...

    brew高阶培训资料(一些接口的讲解)

    在实际开发过程中,这些接口通常会结合使用,例如,一个社交应用可能需要使用ICamera拍摄照片或录制视频,然后通过ISocket发送到服务器,服务器再将内容分发给其他用户,而IMedia则负责在接收端播放这些媒体内容。...

    回调函数

    某些特定的API可能会有自己的注册函数,例如`ISOCKET_Connect()`、`ISOCKET_Writeable()`、`ISOCKET_Readable()`等。 - **取消回调函数**:使用`CALLBACK_Cancel()`函数来取消之前注册的回调函数。 #### 四、C语言...

    仿QQvs2010的群聊程序

    本文将深入探讨如何使用MFC(Microsoft Foundation Classes)和Socket编程技术来开发一个模仿QQ的群聊应用。该应用仅实现了群聊功能,并基于Visual Studio 2010平台开发。通过本文,读者将了解MFC环境下Socket编程的...

    MFC的网络编程[归纳].pdf

    可以使用`netstat -aon`命令查看所有TCP/UDP连接,然后通过`tasklist | find "8989"`检查8989端口是否被占用。如果端口可用,我们就可以继续进行服务器的监听和客户端的连接处理。 当有客户端连接请求时,`...

    CakePHP-Sockets:CakePHP的扩展套接字

    尝试使用Amazon API时,我读到很多有关Amazon规则的信息,即仅允许每秒发出1个请求,否则如果您的网站经常被忽略,则将拒绝您的网站访问Amazon。 显而易见的解决方案是让您的网站确保每秒发出的请求不超过1个。 通常...

    symbian 套接字 API

    err = iSocket.Open(iSocketServer, iProtocolInfo.iAddrFamily, iProtocolInfo.iSockType, iProtocolInfo.iProtocol); if (err != KerrNone && err != KErrAlreadyExists) User::Leave(err); // 绑定和监听...

    Delphi-Cross-Socket-master.zip

    2. **Socket接口**:库中的主要接口可能是ISocket,它封装了底层的socket操作,如连接、监听、发送和接收数据。通过这个接口,开发者可以方便地创建客户端和服务器端的网络连接。 3. **事件驱动**:由于网络通信...

    socket客户端,可连接多个服务器

    在压缩包中的`iSocket`文件可能是实现这个功能的客户端程序源代码或者库文件。进一步分析这个文件将有助于理解具体的实现细节,如如何创建Socket,如何管理连接,以及如何处理异常和重连。如果你对这部分代码有深入...

    Socket 结合活动对象 详细 深入讲解

    在介绍具体的实现细节之前,我们首先了解Socket的基本概念以及如何在Symbian系统中使用Socket进行DNS解析。 **Socket**是一种用于在网络中实现进程间通信的方式,它基于TCP/IP协议栈。在Symbian平台中,可以通过`...

    BREW开发商手册.doc

    - **INetMgr/ISocket/IWeb**:用于网络通信,支持网页读取、套接字编程等。 #### 五、BREW小程序开发注意事项 在开发BREW小程序时,开发者应特别注意: - **内存管理**:合理使用内存,避免内存泄漏,确保程序...

    linux epoll服务器

    3. `ISocket.cpp`:可能包含了网络编程的基本套接字操作,如`socket`、`connect`、`accept`等。 4. `TCPSocket.cpp`:处理TCP连接相关的操作,如读写数据、关闭连接等。 5. `Server.cpp`:服务器的主程序,通常会...

    Python基于select实现的socket服务器

    Python作为一种广泛使用的高级编程语言,提供了丰富的库支持Socket编程。其中,`select`模块是处理多路I/O复用的关键工具之一。本文将详细介绍如何利用Python中的`select`模块来实现一个简单的Socket服务器,并深入...

Global site tag (gtag.js) - Google Analytics