环境: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智能插座的设计与实现》 在当今物联网(IoT)时代,智能家居设备已经成为生活的一部分,智能插座作为其中的关键组件,能够帮助用户远程控制家用电器的开关,提升生活便利性。本项目主要探讨...
### 基于微信小程序的ISocket智能插座的设计与实现 #### 一、引言 随着科技的进步,智能家居成为越来越多人追求的生活方式。然而,如何让现有的非智能家电也能融入到这一智能化潮流中来,成为了亟待解决的问题。...
2. 微信小程序的定义和作用:微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。在本项目中,微信小程序被用作用户交互界面,提供远程控制家电的...
在实际开发过程中,这些接口通常会结合使用,例如,一个社交应用可能需要使用ICamera拍摄照片或录制视频,然后通过ISocket发送到服务器,服务器再将内容分发给其他用户,而IMedia则负责在接收端播放这些媒体内容。...
某些特定的API可能会有自己的注册函数,例如`ISOCKET_Connect()`、`ISOCKET_Writeable()`、`ISOCKET_Readable()`等。 - **取消回调函数**:使用`CALLBACK_Cancel()`函数来取消之前注册的回调函数。 #### 四、C语言...
本文将深入探讨如何使用MFC(Microsoft Foundation Classes)和Socket编程技术来开发一个模仿QQ的群聊应用。该应用仅实现了群聊功能,并基于Visual Studio 2010平台开发。通过本文,读者将了解MFC环境下Socket编程的...
可以使用`netstat -aon`命令查看所有TCP/UDP连接,然后通过`tasklist | find "8989"`检查8989端口是否被占用。如果端口可用,我们就可以继续进行服务器的监听和客户端的连接处理。 当有客户端连接请求时,`...
尝试使用Amazon API时,我读到很多有关Amazon规则的信息,即仅允许每秒发出1个请求,否则如果您的网站经常被忽略,则将拒绝您的网站访问Amazon。 显而易见的解决方案是让您的网站确保每秒发出的请求不超过1个。 通常...
err = iSocket.Open(iSocketServer, iProtocolInfo.iAddrFamily, iProtocolInfo.iSockType, iProtocolInfo.iProtocol); if (err != KerrNone && err != KErrAlreadyExists) User::Leave(err); // 绑定和监听...
2. **Socket接口**:库中的主要接口可能是ISocket,它封装了底层的socket操作,如连接、监听、发送和接收数据。通过这个接口,开发者可以方便地创建客户端和服务器端的网络连接。 3. **事件驱动**:由于网络通信...
在压缩包中的`iSocket`文件可能是实现这个功能的客户端程序源代码或者库文件。进一步分析这个文件将有助于理解具体的实现细节,如如何创建Socket,如何管理连接,以及如何处理异常和重连。如果你对这部分代码有深入...
在介绍具体的实现细节之前,我们首先了解Socket的基本概念以及如何在Symbian系统中使用Socket进行DNS解析。 **Socket**是一种用于在网络中实现进程间通信的方式,它基于TCP/IP协议栈。在Symbian平台中,可以通过`...
- **INetMgr/ISocket/IWeb**:用于网络通信,支持网页读取、套接字编程等。 #### 五、BREW小程序开发注意事项 在开发BREW小程序时,开发者应特别注意: - **内存管理**:合理使用内存,避免内存泄漏,确保程序...
该平台支持使用C/C++语言进行应用程序的编写,并且提供了一系列API接口供开发者使用,这些接口覆盖了数据库操作、文件管理、网络通信等多个方面。BREW平台的开放性和灵活性使得开发者能够轻松创建出功能强大且兼容性...
3. `ISocket.cpp`:可能包含了网络编程的基本套接字操作,如`socket`、`connect`、`accept`等。 4. `TCPSocket.cpp`:处理TCP连接相关的操作,如读写数据、关闭连接等。 5. `Server.cpp`:服务器的主程序,通常会...
Python作为一种广泛使用的高级编程语言,提供了丰富的库支持Socket编程。其中,`select`模块是处理多路I/O复用的关键工具之一。本文将详细介绍如何利用Python中的`select`模块来实现一个简单的Socket服务器,并深入...