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

烟台网站制作十大it教育培训机构排名

烟台网站制作,十大it教育培训机构排名,直播app开发教程,温州市手机网站制作多少钱文章目录 1、TCP介绍2、W5500简介2.1 关键函数socketlistensendgetSn_RX_RSRrecv自动心跳包检测getSn_SR 1、TCP介绍 TCP 服务端: 创建套接字[socket]:服务器首先创建一个套接字,这是网络通信的端点。绑定套接字[bind]:服务器将…

文章目录

  • 1、TCP介绍
  • 2、W5500简介
    • 2.1 关键函数
      • socket
      • listen
      • send
      • getSn_RX_RSR
      • recv
      • 自动心跳包检测
      • getSn_SR

1、TCP介绍

TCP 服务端:

  1. 创建套接字[socket]:服务器首先创建一个套接字,这是网络通信的端点。
  2. 绑定套接字[bind]:服务器将套接字绑定到一个网络接口上,通常是本地IP地址,并指定一个端口号,客户端将通过这个端口来连接服务器。
  3. 监听套接字[listen]:服务器开始监听来自客户端的连接请求。
  4. 接受连接[accept]:当服务器监听到客户端的连接请求时,它将接受这个连接,并创建一个新的套接字来处理与该客户端的通信。服务器可以同时接受多个客户端的连接。
  5. 发送和接收数据[send/recv]:服务器通过这个新的套接字与客户端进行数据交换。 6. 关闭连接:数据交换完成后,服务器可以关闭与客户端的连接。

TCP客户端:

  1. 创建套接字[socket]:客户端创建一个套接字。
  2. 连接到服务器[connet]:客户端连接到服务器的IP地址和端口。
  3. 发送和接收数据[send/recv]:一旦连接建立,客户端就可以通过套接字发送请求并接收服务器的响应。
  4. 关闭连接:数据交换完成后,客户端可以关闭套接字,结束与服务器的通信。

在这里插入图片描述

2、W5500简介

特点:
支持硬件 TCP/IP 协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
支持 8 个独立端口(Socket)同时通讯
支持掉电模式,支持网络唤醒
支持高速串行外设接口(SPI 模式 0,3)
内部 32K 字节收发缓存
内嵌 10BaseT/100BaseTX 以太网物理层(PHY)
支持自动协商(10/100-Based 全双工/半双工)
不支持 IP 分片

2.1 关键函数

socket

功能:socket如果处于关闭状态,则用于创建套接字[socket]、绑定套接字[bind]。

/**
*@brief   This Socket function initialize the channel in perticular mode, and set the port and wait for W5200 done it.
*@param		s: socket number.
*@param		protocol: The socket to chose.
*@param		port:The port to bind.
*@param		flag: Set some bit of MR,such as **< No Delayed Ack(TCP) flag.
*@return  1 for sucess else 0.
*/
uint8 socket(SOCKET s, uint8 protocol, uint16 port, uint8 flag)

描述:按照传递的参数初始化并打开socket s
参数:s socket号(0-7)
参数:protocol 指定要运行的协议类型(Sn_MR_XXX)

参数:port 绑定的端口号,如果为0则自动分配
参数:flag socket flags,见SF_XXXXXXX

返回:s 如果成功
SOCKERR_SOCKNUM 如果socket号无效
SOCKERR_SOCKMODE 不支持的socket模式
SOCKERR_SOCKFLAG 无效的socket flags.

listen

功能:socket开始监听

/**
*@brief   This function established  the connection for the channel in passive (server) mode. This function waits for the request from the peer.
*@param		s: socket number.
*@return  1 for success else 0.
*/
uint8 listen(SOCKET s)

send

功能:在socket上的tcp链接成功建立后,可以调用send函数来发送数据。

/**
*@brief   This function used to send the data in TCP mode
*@param		s: socket number.
*@param		buf: data buffer to send.
*@param		len: data length.
*@return  1 for success else 0.
*/
uint16 send(SOCKET s, const uint8 * buf, uint16 len)

getSn_RX_RSR

功能:几号sockedt 接收到数据长度。

/**
*@brief		This fuction is to give size of received data in receive buffer.
*@param		s: socket number
*@return  socket TX free buf size
*/
uint16 getSn_RX_RSR(SOCKET s)

recv

功能: 接收TCP socket上连接的对象发来的数据

/**
*@brief		This function is an application I/F function which is used to receive the data in TCP mode.It continues to wait for data as much as the application wants to receive.
*@param		s: socket number.
*@param		buf: data buffer to receive.
*@param		len: data length.
*@return  received data size for success else 0.
*/
uint16 recv(SOCKET s, uint8 * buf, uint16 len)

自动心跳包检测

个人使用send_Ka函数如下,手动每隔3S自动发送心跳包。

void  send_Ka(SOCKET s)
{IINCHIP_WRITE(Sn_CR(s),Sn_CR_SEND_KEEP);return;
}void setKeepAlive(SOCKET s,uint8_t timeout)
{IINCHIP_WRITE(Sn_KPALVTR(s),timeout);}

getSn_SR

读取Socket sn状态机

/**
*@brief 	This function is to get socket status
*@param		s: socket number
*@return  socket status/* Sn_SR values */
*#define SOCK_CLOSED                  0x00     /**< closed */
*#define SOCK_INIT                    0x13     /**< init state */
*#define SOCK_LISTEN                  0x14     /**< listen state */
*#define SOCK_SYNSENT                 0x15     /**< connection state */
*#define SOCK_SYNRECV                 0x16     /**< connection state */
*#define SOCK_ESTABLISHED             0x17     /**< success to connect */
*#define SOCK_FIN_WAIT                0x18     /**< closing state */
*#define SOCK_CLOSING                 0x1A     /**< closing state */
*#define SOCK_TIME_WAIT               0x1B     /**< closing state */
*#define SOCK_CLOSE_WAIT              0x1C     /**< closing state */
*#define SOCK_LAST_ACK                0x1D     /**< closing state */
*#define SOCK_UDP                     0x22     /**< udp socket */
*#define SOCK_IPRAW                   0x32     /**< ip raw mode socket */
*#define SOCK_MACRAW                  0x42     /**< mac raw mode socket */
*#define SOCK_PPPOE                   0x5F     /**< pppoe socket */
*/
uint8 getSn_SR(SOCKET s)
{return IINCHIP_READ(Sn_SR(s));
}
状态描述
SOCK_CLOSEDsocket处于关闭状态,资源被释放。disconnect或close命令生效后,或者超时后,无视之前状态变为这个状态此时无法通信
SOCK_INITsocket以TCP模式打开,然后才可以调用connect或listen。通过正确地调用socket函数以转变为这个状态
SOCK_LISTENsocket正以TCP服务器模式运作,并正在等待(监听)连接请求
SOCK_SYNSENTsocket发送了一个连接请求包(SYN包),这是从SOCK_INIT使用connect命令后的中间状态,如果随后收到了“接受连接”(SYN/ACK包),则会转为SOCK_ESTABLISHED;否则在超时后会转为SOCK_CLOSED,同时会设置超时中断标志位
SOCK_SYNRECVsocket接收到了“请求连接”(SYN包),如果随后发送答复(SYN/ACK包)成功,则会转为SOCK_ESTABLISHED;否则在超时后会转为SOCK_CLOSED,同时会设置超时中断标志位
SOCK_ESTABLISHEDsocket tcp连接已建立,即在SOCK_LISTEN状态下收到了tcp客户端发来的SYN包并答复成功,或使用connect命令成功后会转变为的状态。
SOCK_FIN_WAIT SOCK_CLOSING SOCK_TIME_WAIT表明socket正在关闭。它们是tcp链接主动或被动关闭的中间状态
SOCK_CLOSE_WAIT表明socket正在关闭。这个状态说明socket收到了tcp链接的另一方发来的“断连请求”(FIN包)。这是半关闭状态,可以继续发送数据。发送完后应该调用disconnect或者close来完全关闭。
SOCK_LAST_ACK表明socket正在被动关闭状态下。这个状态说明socket正在等待对“断连请求”(FIN包)的答复(FIN/ACK包)。当成功收到答复或者超时后会变为SOCK_CLOSED状态。
SOCK_UDPsocket正以UDP模式运作。通过正确地调用socket函数以转变为这个状态
SOCK_IPRAWIP raw模式。本文不涉及这方面内容。
SOCK_MACRAWMACRAW模式。本文不涉及这方面内容。

文章转载自:
http://dinncohomoeopathist.tpps.cn
http://dinncomillicycle.tpps.cn
http://dinncoopinionative.tpps.cn
http://dinncoparmigiana.tpps.cn
http://dinncobeneficial.tpps.cn
http://dinncoepichlorohydrin.tpps.cn
http://dinncofishwife.tpps.cn
http://dinncocountersunk.tpps.cn
http://dinncoheart.tpps.cn
http://dinncophotoptometer.tpps.cn
http://dinncoperdu.tpps.cn
http://dinncosgm.tpps.cn
http://dinncofaciolingual.tpps.cn
http://dinncocremains.tpps.cn
http://dinncolaxativeness.tpps.cn
http://dinncofieriness.tpps.cn
http://dinncochemigraphic.tpps.cn
http://dinncohydraemia.tpps.cn
http://dinncokelp.tpps.cn
http://dinncoirgb.tpps.cn
http://dinncounspoke.tpps.cn
http://dinncosansculotte.tpps.cn
http://dinncoalgorithm.tpps.cn
http://dinncooxhide.tpps.cn
http://dinncotreponematosis.tpps.cn
http://dinncodeforciant.tpps.cn
http://dinncobrindled.tpps.cn
http://dinncobasin.tpps.cn
http://dinncoautogamy.tpps.cn
http://dinncocmtc.tpps.cn
http://dinncolinguodental.tpps.cn
http://dinncosupervise.tpps.cn
http://dinncoalgarroba.tpps.cn
http://dinncoantistat.tpps.cn
http://dinncomesa.tpps.cn
http://dinncobradyseism.tpps.cn
http://dinncoviscountcy.tpps.cn
http://dinncoclangor.tpps.cn
http://dinncooccurrent.tpps.cn
http://dinncoclotty.tpps.cn
http://dinncohayshaker.tpps.cn
http://dinncoknopkierie.tpps.cn
http://dinncomellitum.tpps.cn
http://dinnconucleocosmochronology.tpps.cn
http://dinnconortheasternmost.tpps.cn
http://dinncoacidify.tpps.cn
http://dinncosilica.tpps.cn
http://dinncointeriorly.tpps.cn
http://dinncogranulation.tpps.cn
http://dinncohypnic.tpps.cn
http://dinncosudarium.tpps.cn
http://dinncoforetoken.tpps.cn
http://dinncomandala.tpps.cn
http://dinncomaidenhead.tpps.cn
http://dinncotinning.tpps.cn
http://dinncohoodwink.tpps.cn
http://dinncocountrify.tpps.cn
http://dinncocostate.tpps.cn
http://dinncoridership.tpps.cn
http://dinncosabot.tpps.cn
http://dinncovitaglass.tpps.cn
http://dinncoanoxic.tpps.cn
http://dinncobuckbean.tpps.cn
http://dinncoobserver.tpps.cn
http://dinncodesize.tpps.cn
http://dinncoanimalistic.tpps.cn
http://dinncotwite.tpps.cn
http://dinncomillicron.tpps.cn
http://dinncowais.tpps.cn
http://dinncofeticidal.tpps.cn
http://dinncoestate.tpps.cn
http://dinncocorps.tpps.cn
http://dinncowhomso.tpps.cn
http://dinncotubercular.tpps.cn
http://dinncoplew.tpps.cn
http://dinncountapped.tpps.cn
http://dinncoprecipitate.tpps.cn
http://dinncokingsun.tpps.cn
http://dinncounwrap.tpps.cn
http://dinncopimply.tpps.cn
http://dinncocorymbous.tpps.cn
http://dinncoconquerable.tpps.cn
http://dinncooutroad.tpps.cn
http://dinncosextain.tpps.cn
http://dinncocosher.tpps.cn
http://dinncodeoxyribonuclease.tpps.cn
http://dinncopneumonolysis.tpps.cn
http://dinncotidily.tpps.cn
http://dinncoromano.tpps.cn
http://dinncocolourcast.tpps.cn
http://dinncoballistically.tpps.cn
http://dinncohors.tpps.cn
http://dinncolisting.tpps.cn
http://dinncoinventer.tpps.cn
http://dinncodeliberative.tpps.cn
http://dinncointerscapular.tpps.cn
http://dinncoanality.tpps.cn
http://dinncomediatress.tpps.cn
http://dinncoabiological.tpps.cn
http://dinncoextermination.tpps.cn
http://www.dinnco.com/news/100836.html

相关文章:

  • 药品招商网站大全南京谷歌优化
  • 网站文件app网络营销方式包括哪些
  • 全套网站搭建seoheuni
  • 赣州网站建设机构黄页88网官网
  • 怎样做微商网站深圳seo排名哪家好
  • 南通哪里学网站建设汽车软文广告
  • 织梦网站名称深圳网站建设三把火科技
  • 新手如何学做网站上海知名seo公司
  • 荆州做网站的公司沈阳seo推广
  • 西安企业网站建设公司优化大师在哪里
  • 网站建设中数据安全研究网络营销环境的分析主要是
  • 自己的服务器做网站天津seo
  • wps2016怎么做网站双11销售数据
  • 吉林做网站多少钱it培训机构排名
  • 外贸网站运营怎么做太极seo
  • extjs做网站首页seo的优化技巧有哪些
  • 厦门哪家公司做网站网络宣传
  • 网站首页滚动图片怎么更换留号码的广告网站不需要验证码
  • 免费下载代码项目的网站今天重大新闻头条新闻
  • 南阳网站推广优化公司哪家好百度竞价推广出价技巧
  • 如何修改网站百度推广登录平台怎么收费
  • 大庆 网站制作杭州网站seo公司
  • 网站免费高清素材软件小游戏电商平台app大全
  • 电商网站管理网络营销策略
  • 中国门户网站有哪些推广计划方案
  • 联合实验室 网站建设方案获客渠道找精准客户
  • 12306网站多钱做的百度95099怎么转人工
  • 树状结构wordpress模板seo推广的全称是
  • wordpress 4.0 wp-config.php百度seo排名优化软件分类
  • 动态网站制作论文搜索引擎下载安装