Open1081使用MICO core API 与Wifi协议熟悉
[复制链接]
802.11工作方式 802.11定义了两种类型的设备,一种是无线站,通常是通过一台PC机器加上一块无线网络接口卡构成的,另一个称为无线接入点(AccessPoint,AP),它的作用是提供无线和有线网络之间的桥接。一个无线接入点通常由一个无线输出口和一个有线的网络接口(802.3接口)构成,桥接软件符合802.1d桥接协议。接入点就像是无线网络的一个无线基站,将多个无线的接入站聚合到有线的网络上。无线的终端可以是802.11PCMCIA卡、PCI接口、ISA接口的,或者是在非计算机终端上的嵌入式设备(例如802.11手机)。 802.11四种主要物理组件 1. 工作站(Station),构建网络的主要目的是为了在工作站间传送数据。所谓工作站,是指配备无线网络接口的计算设备。 2. 接入点(Access Point),802.11网络所使用的帧必须经过转换,方能被传递至其他不同类型的网络。具备无线至有线的桥接功能的设备称为接入点,接入点的功能不仅于此,但桥接最为重要。 3. 无线媒介(Wireless Medium),802.11标准以无线媒介在工作站之间传递帧。其所定义的物理层不只是一种,802.11最初标准化了两种射频物理层以及一种红外线物理层。 4. 分布式系统(Distribution System),当几个接入点串联以覆盖较大区域时,彼此之间必须相互通信以掌握移动式工作站的行踪。分布式系统属于802.11的逻辑组件,负责将帧转送至目的地。 MICO BSD-like Socket 接口 int socket (int domain, int type, intprotocol) Create an endpoint for communication.More... int setsockopt (int sockfd, int level, intoptname, const void *optval, socklen_t optlen) Set options on sockets. More... int getsockopt (int sockfd, int level, intoptname, const void *optval, socklen_t *optlen) Get options on sockets. More... int bind (int sockfd, const structsockaddr_t *addr, socklen_t addrlen) bind a name to a socket More... int connect (int sockfd, const structsockaddr_t *addr, socklen_t addrlen) Initiate a connection on a socket. More... int listen (int sockfd, int backlog) Listen for connections on a socket. More... int accept (int sockfd, struct sockaddr_t*addr, socklen_t *addrlen) Accept a connection on a socket. More... int select (int nfds, fd_set *readfds,fd_set *writefds, fd_set *exceptfds, struct timeval_t *timeout) Monitor multiple file descriptors, waitinguntil one or more of the file descriptors become "ready" forsome class of I/O operation (e.g., input possible). More... ssize_t send (int sockfd, const void *buf,size_t len, int flags) Send a message on a socket. More... int write (int sockfd, void *buf, size_tlen) Send a message on a socket. More... ssize_t sendto (int sockfd, const void*buf, size_t len, int flags, const struct sockaddr_t *dest_addr, socklen_taddrlen) Send a message on a socket to a specifictarget address. More... ssize_t recv (int sockfd, void *buf, size_tlen, int flags) Receive a message from a socket. More... int read (int sockfd, void *buf, size_tlen) Receive a message from a socket. More... ssize_t recvfrom (int sockfd, void *buf,size_t len, int flags, struct sockaddr_t *src_addr, socklen_t*addrlen) Receive a message from a socket and get thesource address. More... int close (int fd) Close a file descriptor. More... 用户使用流程 通常用户的做法就是打开一个socket,调用一个ioctl,等待消息返回,收到消息后继续做下面的事情,然后又等待内核消息的返回,如此循环。 比如我们的系统的流程就是这样的: Open1081中代码中的使用:
|