在上周的博文里,我们介绍了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实现网络字符LCD http://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/
文章评论(0条评论)
登录后参与讨论