UIP中文文档第五 原始套接字_protosockets_库.pdfVIP

  • 63
  • 0
  • 约5.3千字
  • 约 6页
  • 2017-06-20 发布于湖北
  • 举报

UIP中文文档第五 原始套接字_protosockets_库.pdf

UIP中文文档第五 原始套接字_protosockets_库

详细说明: 原始套接字(protosocket)为uIP 提供了一个与传统BSD 套接字接口类似的接口. 不同于为传统uIP 事件驱动接口写的程序,为 始套接字(protosocket)接口写的程序是顺 序方式执行的,并且无需以明确的状态机方式实现. 原始套接字(protosocket)只能用于TCP 连接. 原始大接字(protosocket)库使用 始线程(protothreads)来提供顺序控制流.这使得 始套接字在内存方面变得轻量型,但也同时意味着 始套接字继承了原始线程的功能限制. 每个原始套接字只能生存于单个函数中.自动变量(栈变量)不能跨 始套接字函数调用存在. 注意: 由于原始套接字库使用的是 始线程(protothreads),在调用 始套接字库函数时,局部 变量并不总能得到保存.所以这里建议局部变量的使用要十分小心。 原始套接字库提供了一些无需处理重传和回应的发送数据函数,和一些无需对被分解成多个 TCP 段的数据进行处理的读取数据函数。 由于每个 始套接字都作为一个 “ 始线程”来运行,应在使用 始套接字的函数起始处通 过调用 PSOCK_BEGIN () 的方式启用 始套接字。与之类似,原始套接字可以通过调用 PSOCK_EXIT ()结束掉。 相关文件: 1. psock.h 始套接字库头文件 复制代码 相关结构体: 1. struct psock_bufstruct psock 代表一个 始套接字。 复制代码 相关宏定义: 1. 。 2. #define PSOCK_INIT (psock, buffer, buffersize) 初始化一个 始套接字。 3. #define PSOCK_BEGIN (psock) 在一个函数中启用一个原始套接字 的原始线程。 4. #define PSOCK_SEND (psock, data, datalen) 发送数据。 5. #define PSOCK_SEND_STR(psock, str) 发送一个以零结尾的字符 串。 6. #define PSOCK_GENERATOR_SEND(psock, generator, arg) 通过函 数(generator)产生数据并发送出去。 7. #define PSOCK_CLOSE(psock) 关闭一个原始套接字。 8. #define PSOCK_READBUF(psock) 读数据直到缓冲区满。 9. #define PSOCK_READTO(psock, c) 读数据到字符c. 10.#define PSOCK_DATALEN(psock) 获得上次读到的数据长度。 11.#define PSOCK_EXIT (psock) 退出 始套接字的 始线程。 12.#define PSOCK_CLOSE_EXIT(psock) 关闭一个原始套接字,并退出其 原始线程。 13.#define PSOCK_END(psock) 声明一个 始套接字的 始线程的结 尾。 14.#define PSOCK_NEWDATA(psock) 查明是否有数据到达原始套接字。 15.#define PSOCK_WAIT_UNTIL(psock, condition) 等待,直到条件 (condition)为真。 16.#define PSOCK_WAIT_THREAD(psock, condition) PT_WAIT_THREAD (((psock)-pt), (condition)) 复制代码 相关函数: 1. u16_t psock_datalen(struct psock *psock) char psock_newdata(psock * s) 1. #define PSOCK_BE

文档评论(0)

1亿VIP精品文档

相关文档