neclues lwip 的 bind、send 发送调用过程和等待唤醒条件
来源:互联网 发布:linux inode 耗尽解决 编辑:程序博客网 时间:2024/06/07 00:43
1、bind
bind
lwip_bind
netconn_bind
{
msg.function = do_bind;
msg.msg.conn = conn;
msg.msg.msg.bc.ipaddr = addr;
msg.msg.msg.bc.port = port;
err = TCPIP_APIMSG(&msg); ==>sys_arch_sem_wait(&apimsg->msg.conn->op_completed, 0);挂起
}
----------------------------------------
tcpip_thread
do_bind TCPIP_APIMSG_ACK(msg);==> sys_sem_signal(&m->conn->op_completed); 唤醒
tcp_bind
2、send
send
lwip_send
netconn_write
{
msg.function = do_write;
msg.msg.conn = conn;
msg.msg.msg.w.dataptr = dataptr;
msg.msg.msg.w.apiflags = apiflags;
msg.msg.msg.w.len = size;
}
----------------------------------------
tcpip_thread
do_write
do_writemore(msg->conn); err = TCPIP_APIMSG(&msg);==>sys_arch_sem_wait(&apimsg->msg.conn->op_completed, 0);
{
tcp_output
tcp_output_segment
ip_output
ip_output_if
netif->output
low_level_output
}
这也是一种积累吧,下次就可以直接回忆起来了!!!
- neclues lwip 的 bind、send 发送调用过程和等待唤醒条件
- 第二部分 线程的等待和唤醒
- 第二部分 线程的等待和唤醒
- 线程通信和等待/唤醒
- sychronized 同步的等待和唤醒锁的状态
- 黑马程序员_多线程的死锁和等待唤醒机制
- jdk1.6以后的线程锁和等待唤醒示例
- 多线程的等待唤醒机制和Lock锁
- 【Qt多线程之线程的等待和唤醒】QWaitCondition
- LWIP 数据接收和发送
- 多线程的等待唤醒机制
- 线程的等待唤醒机制
- 线程的等待与唤醒
- 线程的等待与唤醒
- Linux多线程程序中条件变量的改变没有唤醒等待此条件变量改变的线程
- 设置tcp无等待算法,send直接发送发送数据
- WINCE的挂起和唤醒过程
- send的发送问题
- 领会一些比较巧妙的算法
- Android 网络连接:HttpUtils 的GET、POST与注解
- 个人笔记C/C++调用java
- mac中使用终端生成RSA私钥和公钥文件
- less函数手册(三)
- neclues lwip 的 bind、send 发送调用过程和等待唤醒条件
- Linux双网卡绑定
- hdu5444 Elven Postman(二叉树遍历)
- bash中 2>&1 & 的解释
- 第三周 项目一:顺序表的基本运算 (二)
- 第三周--顺序表的基本运算1
- Hibernate系列之基本配置
- 如何判断两个矩形相交
- Emgu入门引导——加载并显示图像(C#风格)