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

想注册一个做网站的公司好长沙谷歌优化

想注册一个做网站的公司好,长沙谷歌优化,网站建设 设计提成,游戏网站怎么做一、TCP API函数 其中tcp_poll()函数的第三个参数表示隔几秒调用一次这个周期性函数 二、修改服务器的IP 三、TCP客户端编程思路 申请套接字绑定服务器IP和端口号等待客户端连接 进入连接回调函数在连接回调函数中 配置一些回调函数,如接收回调函数,周期…

一、TCP API函数

其中tcp_poll()函数的第三个参数表示隔几秒调用一次这个周期性函数

二、修改服务器的IP

三、TCP客户端编程思路

  1. 申请套接字
  2. 绑定服务器IP和端口号
  3. 等待客户端连接 进入连接回调函数
  4. 在连接回调函数中 配置一些回调函数,如接收回调函数,周期回调函数等等(类似于QT里面的信号与槽机制,等待一个信号的来临,然后执行对应的函数)
  5. 在接收回调函数里面将 接收的消息发送给客户端

四、完整代码

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 *es=NULL;  if(err==ERR_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->state=ES_TCPCLIENT_CONNECTED;//状态为连接成功es->pcb=pcb;  es->p=NULL; //更新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->state==ES_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);es=NULL;}if(tcp_recv_pbuf){pbuf_free(tcp_recv_pbuf);//释放接收pbuftcp_recv_pbuf=NULL;}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.dinnco.com/news/15839.html

相关文章:

  • 如何建造网站专业竞价托管哪家好
  • 安装师傅最好的接单平台上海网络seo公司
  • 哈尔滨网站制作哪家好薇关注公众号推广2元一个
  • 移动网站建设的前景上海网上推广
  • 视频 主题 wordpress太原seo全网营销
  • 用模板建商场购物网站抖音视频排名优化
  • 网站的互动功能百度网站网址是多少
  • 建设银行app下载常用的seo工具的是有哪些
  • 网站的风格设计有哪些百度的官方网站
  • 国内做的比较好的跨境电商网站seo营销推广服务公司
  • 茶网站开发的意义目的长沙靠谱seo优化费用
  • 视频拍摄appseo策略什么意思
  • 免费建设网站设计页面百度推广登录首页
  • 亚洲精华国产精华液的护肤功效重庆网站seo好不好
  • 做任务免费得晋江币网站怎样才能在百度上发布信息
  • 武汉网站建设电话网络代理app
  • 网站管理员怎样管理员权限设置专业推广公司
  • 网站开发专业社会实践调研报告网络营销平台有哪些?
  • Python电影网站开发百度云官方网站
  • wordpress安装没有选择语言seo运营招聘
  • 织梦做的网站怎么上传视频教程中国今天刚刚发生的新闻
  • 用织梦做视频网站体验式营销经典案例
  • 网站色调陕西网络营销优化公司
  • 对电子政务做技术支持的网站百度认证证书
  • 一同看网页打不开上海搜索引擎优化公司
  • 谷歌网站收录提交网址域名注册
  • 深圳定制网站制作报价网络整合营销理论案例
  • 福州网站关键词推广石家庄seo报价
  • 桐城58网站在那里做网站seo设计
  • 网站文件夹没有权限什么网站都能打开的浏览器