当前位置: 首页 > news >正文

做网站的如何找业务湖北省建设厅官方网站

做网站的如何找业务,湖北省建设厅官方网站,网站建设的报价方案,游戏模型外包网站一、TCP API函数 其中tcp_poll()函数的第三个参数表示隔几秒调用一次这个周期性函数 二、修改服务器的IP 三、TCP客户端编程思路 申请套接字绑定服务器IP和端口号等待客户端连接 进入连接回调函数在连接回调函数中 配置一些回调函数#xff0c;如接收回调函数#xff0c;周期…一、TCP API函数 其中tcp_poll()函数的第三个参数表示隔几秒调用一次这个周期性函数 二、修改服务器的IP 三、TCP客户端编程思路 申请套接字绑定服务器IP和端口号等待客户端连接 进入连接回调函数在连接回调函数中 配置一些回调函数如接收回调函数周期回调函数等等类似于QT里面的信号与槽机制等待一个信号的来临然后执行对应的函数在接收回调函数里面将 接收的消息发送给客户端 四、完整代码 tcp_client.c #include tcp_client.h #include stdlib.h #include stdio.h #include string.h#define IP0 192 #define IP1 168 #define IP2 1 #define IP3 104#define PORT 8080int Tcp_Client_Init(void) {struct tcp_pcb *tcp_client_pcb;struct ip_addr ipaddr;tcp_client_pcb tcp_new();//为tcp客户端分配一个tcp_pcb结构体if(tcp_client_pcb)//创建成功{IP4_ADDR(ipaddr, IP0, IP1, IP2, IP3);//连接到目的地址的指定端口上,当连接成功后回调tcp_client_connected()函数tcp_connect(tcp_client_pcb, ipaddr, PORT, tcp_client_connected);return 0;//初始化成功}return 1;//初始化失败 }//lwIP TCP连接建立后调用回调函数 static err_t tcp_client_connected(void *arg, struct tcp_pcb *pcb, err_t err) {struct tcp_client_struct *esNULL; if(errERR_OK) {//建立连接后发送一个connect success 信息tcp_write(pcb, STM32F407 connect success \r\n, strlen(STM32F407 connect success \r\n), 1);es(struct tcp_client_struct*)malloc(sizeof(struct tcp_client_struct)); es-stateES_TCPCLIENT_CONNECTED;//状态为连接成功es-pcbpcb; es-pNULL; //更新tpcb所有回调函数的参数arg。pcb:当前TCP连接的控制块、es:需要传递给回调函数的参数tcp_arg(pcb,es); //配置接收回调函数tcp_recv(pcb, tcp_client_recv);//配置回调函数该函数周期性调用,每隔一秒调用一次tcp_poll(pcb,tcp_client_poll,1); }else{return tcp_close(pcb);}return ERR_OK; }//lwIP tcp_recv()函数的回调函数 static err_t tcp_client_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *tcp_recv_pbuf, err_t err) {struct pbuf *tcp_send_pbuf;struct tcp_client_struct *es (struct tcp_client_struct *)arg;//TCP客户端处于连接状态 且 接收到的数据不为空时if (es-stateES_TCPCLIENT_CONNECTED tcp_recv_pbuf ! NULL){// 扩大收发数据的窗口tcp_recved(pcb, tcp_recv_pbuf-tot_len);// 将接收的数据拷贝给发送结构体 tcp_send_pbuf tcp_recv_pbuf;// 将接收到的数据再转发出去,最后一个参数为1表示立即发送数据0表示将数据放入发送缓冲区等待下一个发送事件再发送。tcp_write(pcb, tcp_send_pbuf-payload, tcp_send_pbuf-len, 1);pbuf_free(tcp_recv_pbuf);}else if (err ! ERR_OK){if(es){free(es);esNULL;}if(tcp_recv_pbuf){pbuf_free(tcp_recv_pbuf);//释放接收pbuftcp_recv_pbufNULL;}return tcp_close(pcb);}return ERR_OK; }//lwIP tcp_poll的回调函数 err_t tcp_client_poll(void *arg, struct tcp_pcb *tpcb) {err_t ret_err;struct tcp_client_struct *es (struct tcp_client_struct*)arg;if(es!NULL) //连接处于空闲可以发送数据{}return ret_err; } tcp_client.h #ifndef __TCP_CLIENT_T #define __TCP_CLIENT_T#include lwip/debug.h #include lwip/stats.h #include lwip/tcp.h #include lwip/memp.h #include lwip/mem.h #include lwip_comm.h//tcp服务器连接状态 enum tcp_client_states {ES_TCPCLIENT_NONE 0, //没有连接ES_TCPCLIENT_CONNECTED, //连接到服务器了 ES_TCPCLIENT_CLOSING, //关闭连接 }; //LWIP回调函数使用的结构体 struct tcp_client_struct {u8 state;//当前连接状态struct tcp_pcb *pcb; //指向当前的pcbstruct pbuf *p; //指向接收/或传输的pbuf }; int Tcp_Client_Init(void); static err_t tcp_client_connected(void *arg, struct tcp_pcb *pcb, err_t err); static err_t tcp_client_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *tcp_recv_pbuf, err_t err); err_t tcp_client_poll(void *arg, struct tcp_pcb *tpcb); void tcp_client_close_connection(struct tcp_pcb *tpcb);#endif 五、注意事项 如果出现客户端连接不上的情况可以看看是否可以ping通如果ping的过程中出现TTL传输中过期可以尝试将以太网禁用然后启用在等待一定的时间看是否可以连接成功。
http://www.ho-use.cn/article/10817755.html

相关文章:

  • 怎么自己做网站的步骤怎么做营销
  • 网站开发后台指什么网页制作软件免费版下载
  • 网站案例上海内涵网站源码
  • 中国建设银行企业信息门户网站wordpress地区分站
  • 网站建设得花多少钱支付公司网站建设会计分录
  • 2016年网站建设总结开个做网站的公司
  • 西昌城乡规划与建设局网站WordPress小程序开发
  • 诸城哪有做公司网站的明光市建设局网站
  • 怎么做网站维护宣传新媒体运营师考试报名官网
  • 淘宝客网站开发教程德钦网站建设
  • 简单 大气 网站模版吕邵苍设计公司网站
  • 学生网站建设总结报告制作广告公司宣传片
  • 杭州信贷网站制作免费的域名注册
  • 上海专业网站推广公司网站实名审核
  • 电商网站运营规划seo推广优势
  • 做网站学h5还是php做网站是做广告吗
  • 做电影网站会不会涉及版权问题江苏网站备案要求
  • 乌镇网站开发文档it外包服务管理制度
  • 电商网站开发prd厦门网站定制开发
  • 佛山市桂城建设局网站古风wordpress
  • 上海宽带网网站app ui设计欣赏 网站
  • 深圳网站维护页面设计seo全网优化推广
  • 免费的网站域名申请网件路由器设置教程
  • 仓库管理系统网站建设个人证书查询网全国联网
  • 零食网站策划书有什么好用的模拟建站软件
  • 简述php网站开发流程图哪里有做网站服务
  • 深圳市城乡住房和建设局网站首页建设食品网站如何定位
  • 网站seo外链国内重大新闻事件2024
  • 做个人的网站怎么做装修软件排行榜前十名
  • asp做的网站如何更新云虚拟主机做网站