WIZnet socket API
WIZnet socket APIs 基于 Berkeley socket APIs,因此有着相似的名字和接口。但是也是有着些许的不同。
API | WIZnet | Berkeley |
---|---|---|
socket() | O | O |
bind() | X | O |
listen() | O | O |
connect() | O | O |
accept() | X | O |
recv() | O | O |
send() | O | O |
recvfrom() | O | O |
sendto() | O | O |
closesocket() | O close() & disconnect() | O |
bind() 函数和 accept() 函数在 Berkeley socket APIs 中,但 WIZnet socket APIs 中并没有。这是因为 WIZnet 的 socket() 函数不但创建了一个 SOCKET 还绑定了一个本地端口号,并且 WIZnet 中的 listen() 不仅仅监听来自客户端的连接请求还接受连接请求。
当开发者使用 Berkeley socket APIs 进行 TCP SERVER 编程时,开发者只能监听一个端口。在服务端编写的监听 SOCKET 接受来自客户端的连接请求时,它会持续侦听。收到连接请求后,服务端都会创建一个新的 socket ,这个新的 socket 用来和就客户端进行通信。
当开发者使用 WIZnet socket APIs 进行 TCP SERVER 编程时,开发者可以对同一个端口使用最多 8 个监听 SOCKET 。原因是在 WIZnet socket APIs 中没有 accept() ,当服务端的监听 SOCKET 接受来自客户端的连接请求时,它会被更改为了与客户端通信。并且更改后的 SOCKET 不再侦听,而是专用于与客户端通信。如果有许多具有相同侦听端口号的侦听 SOCKET,并且客户端请求连接,则具有最小 SOCKET 编号的 SOCKET 将接受请求并更改为通信 SOCKET。
标签:socket,APIs,监听,API,WIZnet,SOCKET,客户端 From: https://www.cnblogs.com/slickzz/p/17848504.html