WIZnet2012

什么是API函数以及如何使用W7100A进行初始化(TCPIPCore)?(三)

0
阅读(2046)

在上周的博文里,我们介绍了API函数以及TCPIPCore初始化的前半部分内容,接下来,我们继续为大家介绍最后一部分内容,希望对大家有所帮助。

第一部分在这里:http://blog.iwiznet.cn/?p=426

第二部分在这里:http://blog.iwiznet.cn/?p=628

5.4 socket.c

socket():这个函数会根据协议打开相对应的socket,同时将SOCKET与端口号连接。可以独立的创建这8个SOCKET。如果用户开启两个或者更多个相同的协议和相同的端口号,就会影响正常的通信。在这种情况下,数据将会先进入较小的socket号。

connect():该函数尝试与客户端连接。为了能够和客户端连接,必须要保证客户端的IP地址以及端口号输入正确。如果用户执行于TCP客户端模式下,在重新连接的过程中,需要更改本地端口号。如果用户在尝试连接之前,没有进行正常的禁止,那么来自于服务器的存取就会被拒绝。这是因为socket的信息一直都没有发生改变,仍然和之前与服务器绑定在一起。正因为如此,用户需要用另外一个不同的端口号重新打开socket(‘socket()’函数)。

sendto():该函数用于指定的socket下, 向主机发送UDP、IPRAW和MACRAW数据。这它一般在无连接传输模式协议下使用,所以将会增加两个参数,这两个参数都包含目的地信息。为了能够利用这个函数发送数据,用户应该输入参数‘addr’和参数‘port’。‘addr’指示目的IP地址,‘port’指示目的端口号。这个函数读取TX写指针,并且将数据复制到发送缓存器中,然后指针根据数据长度增加相应的值。在使用IPWRAW同MACRAW socket的时候,有几个参数是可以忽略的。

recv():该函数用于指定的socket下,接收已经建立连接的主机发来的TCP数据。它只用在TCP模式下。在UDP模式下,用户应该使用recvfrom()函数。这个函数的功能是读取RX读指针的值,并且从接收缓存器中复制数据。指针根据数据的长度增加相应的值。

recvfrom():该函数用在指定的socket下,接收来自主机的UDP、IPRAW以及MACRAW数据。这它一般在无传输连接模式协议下使用,所以将会增加两个参数,这两个参数都包含目的地信息。当用户利用这个函数接收数据时,可以同时获取对端的信息。这个函数读取RX读指针的数据,并且复制来自接收缓存器的数据。指针会根据数据的长度增加相应的值。在IPRAW和MACRAW socket中,一些参数可以忽略。

这是本文的剩余内容,希望对大家有所帮助。欢迎大家的留言讨论。

更多有关W7100A的博文请看这里:

如何使用W7100A实现网络字符LCDhttp://blog.iwiznet.cn/?p=168

单片机以太网控制芯片— iMCU W7100Ahttp://blog.iwiznet.cn/?p=229

如何使用W7100A模拟I2C总线http://blog.iwiznet.cn/?p=304

如何实现W7100A程序烧录http://blog.iwiznet.cn/?p=161

也可进入我们的官方网站或博客查看更多。

如果您对WIZnet的产品或是技术感兴趣,请随时与我们联系。

可以直接留言或登录WIZnet官方网站:http://www.iwiznet.cn

公司微博是:http://weibo.com/wiznet2012

公司博客是:http://blog.iwiznet.cn/

Baidu
map