新建
上传
首页
助手
最?/div>
资料?/div>
工具

LWIP

?/p>

SOCKET

的实?/p>

 

 

http://bluefish.blog.51cto.com/214870/158413

  

 

Lwip

协议栈的实现目的,无非是要上层用来实?/p>

app

?/p>

socket

编程。好,我?/p>

就从

socket

开始。为了兼容性,

lwip

?/p>

socket

应该也是提供标准?/p>

socket

接口?/p>

数,恩,没错,在

src\include\lwip\socket.h

文件中可以看到下面的宏定义:

 

#if LWIP_COMPAT_SOCKETS 

#define accept(a,b,c)         lwip_accept(a,b,c) 

#define bind(a,b,c)           lwip_bind(a,b,c) 

#define shutdown(a,b)         lwip_shutdown(a,b) 

#define closesocket(s)        lwip_close(s) 

#define connect(a,b,c)        lwip_connect(a,b,c) 

#define getsockname(a,b,c)    lwip_getsockname(a,b,c) 

#define getpeername(a,b,c)    lwip_getpeername(a,b,c) 

#define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e) 

#define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e) 

#define listen(a,b)           lwip_listen(a,b) 

#define recv(a,b,c,d)         lwip_recv(a,b,c,d) 

#define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f) 

#define send(a,b,c,d)         lwip_send(a,b,c,d) 

#define sendto(a,b,c,d,e,f)   lwip_sendto(a,b,c,d,e,f) 

#define socket(a,b,c)         lwip_socket(a,b,c) 

#define select(a,b,c,d,e)     lwip_select(a,b,c,d,e) 

#define ioctlsocket(a,b,c)    lwip_ioctl(a,b,c) 

 

#if LWIP_POSIX_SOCKETS_IO_NAMES 

#define read(a,b,c)           lwip_read(a,b,c) 

#define write(a,b,c)          lwip_write(a,b,c) 

#define close(s)              lwip_close(s) 

先不说实际的实现函数,光看这些定义的宏,就是标准

socket

所必须有的接口?/p>

 

 

接着看这些实际的函数实现。这些函数实现在

src\api\socket.c

中。先看下?/p>

受连接的函数,这个是

tcp

?/p>

 

原型?/p>

int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen)

 

可以看到这里?/p>

socket

类型参数

 s

,实际上是个

int

?/p>

 

在这个函数中的第一个函数调用是

sock = get_socket(s); 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

LWIP

?/p>

SOCKET

的实?/p>

 

 

http://bluefish.blog.51cto.com/214870/158413

  

 

Lwip

协议栈的实现目的,无非是要上层用来实?/p>

app

?/p>

socket

编程。好,我?/p>

就从

socket

开始。为了兼容性,

lwip

?/p>

socket

应该也是提供标准?/p>

socket

接口?/p>

数,恩,没错,在

src\include\lwip\socket.h

文件中可以看到下面的宏定义:

 

#if LWIP_COMPAT_SOCKETS 

#define accept(a,b,c)         lwip_accept(a,b,c) 

#define bind(a,b,c)           lwip_bind(a,b,c) 

#define shutdown(a,b)         lwip_shutdown(a,b) 

#define closesocket(s)        lwip_close(s) 

#define connect(a,b,c)        lwip_connect(a,b,c) 

#define getsockname(a,b,c)    lwip_getsockname(a,b,c) 

#define getpeername(a,b,c)    lwip_getpeername(a,b,c) 

#define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e) 

#define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e) 

#define listen(a,b)           lwip_listen(a,b) 

#define recv(a,b,c,d)         lwip_recv(a,b,c,d) 

#define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f) 

#define send(a,b,c,d)         lwip_send(a,b,c,d) 

#define sendto(a,b,c,d,e,f)   lwip_sendto(a,b,c,d,e,f) 

#define socket(a,b,c)         lwip_socket(a,b,c) 

#define select(a,b,c,d,e)     lwip_select(a,b,c,d,e) 

#define ioctlsocket(a,b,c)    lwip_ioctl(a,b,c) 

 

#if LWIP_POSIX_SOCKETS_IO_NAMES 

#define read(a,b,c)           lwip_read(a,b,c) 

#define write(a,b,c)          lwip_write(a,b,c) 

#define close(s)              lwip_close(s) 

先不说实际的实现函数,光看这些定义的宏,就是标准

socket

所必须有的接口?/p>

 

 

接着看这些实际的函数实现。这些函数实现在

src\api\socket.c

中。先看下?/p>

受连接的函数,这个是

tcp

?/p>

 

原型?/p>

int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen)

 

可以看到这里?/p>

socket

类型参数

 s

,实际上是个

int

?/p>

 

在这个函数中的第一个函数调用是

sock = get_socket(s); 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

LWIP

?/p>

SOCKET

的实?/p>

 

 

http://bluefish.blog.51cto.com/214870/158413

  

 

Lwip

协议栈的实现目的,无非是要上层用来实?/p>

app

?/p>

socket

编程。好,我?/p>

就从

socket

开始。为了兼容性,

lwip

?/p>

socket

应该也是提供标准?/p>

socket

接口?/p>

数,恩,没错,在

src\include\lwip\socket.h

文件中可以看到下面的宏定义:

 

#if LWIP_COMPAT_SOCKETS 

#define accept(a,b,c)         lwip_accept(a,b,c) 

#define bind(a,b,c)           lwip_bind(a,b,c) 

#define shutdown(a,b)         lwip_shutdown(a,b) 

#define closesocket(s)        lwip_close(s) 

#define connect(a,b,c)        lwip_connect(a,b,c) 

#define getsockname(a,b,c)    lwip_getsockname(a,b,c) 

#define getpeername(a,b,c)    lwip_getpeername(a,b,c) 

#define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e) 

#define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e) 

#define listen(a,b)           lwip_listen(a,b) 

#define recv(a,b,c,d)         lwip_recv(a,b,c,d) 

#define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f) 

#define send(a,b,c,d)         lwip_send(a,b,c,d) 

#define sendto(a,b,c,d,e,f)   lwip_sendto(a,b,c,d,e,f) 

#define socket(a,b,c)         lwip_socket(a,b,c) 

#define select(a,b,c,d,e)     lwip_select(a,b,c,d,e) 

#define ioctlsocket(a,b,c)    lwip_ioctl(a,b,c) 

 

#if LWIP_POSIX_SOCKETS_IO_NAMES 

#define read(a,b,c)           lwip_read(a,b,c) 

#define write(a,b,c)          lwip_write(a,b,c) 

#define close(s)              lwip_close(s) 

先不说实际的实现函数,光看这些定义的宏,就是标准

socket

所必须有的接口?/p>

 

 

接着看这些实际的函数实现。这些函数实现在

src\api\socket.c

中。先看下?/p>

受连接的函数,这个是

tcp

?/p>

 

原型?/p>

int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen)

 

可以看到这里?/p>

socket

类型参数

 s

,实际上是个

int

?/p>

 

在这个函数中的第一个函数调用是

sock = get_socket(s); 

Ͼλ">
Ͼλ
Ŀ

LWIP之SOCKET的实?- 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

LWIP

?/p>

SOCKET

的实?/p>

 

 

http://bluefish.blog.51cto.com/214870/158413

  

 

Lwip

协议栈的实现目的,无非是要上层用来实?/p>

app

?/p>

socket

编程。好,我?/p>

就从

socket

开始。为了兼容性,

lwip

?/p>

socket

应该也是提供标准?/p>

socket

接口?/p>

数,恩,没错,在

src\include\lwip\socket.h

文件中可以看到下面的宏定义:

 

#if LWIP_COMPAT_SOCKETS 

#define accept(a,b,c)         lwip_accept(a,b,c) 

#define bind(a,b,c)           lwip_bind(a,b,c) 

#define shutdown(a,b)         lwip_shutdown(a,b) 

#define closesocket(s)        lwip_close(s) 

#define connect(a,b,c)        lwip_connect(a,b,c) 

#define getsockname(a,b,c)    lwip_getsockname(a,b,c) 

#define getpeername(a,b,c)    lwip_getpeername(a,b,c) 

#define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e) 

#define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e) 

#define listen(a,b)           lwip_listen(a,b) 

#define recv(a,b,c,d)         lwip_recv(a,b,c,d) 

#define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f) 

#define send(a,b,c,d)         lwip_send(a,b,c,d) 

#define sendto(a,b,c,d,e,f)   lwip_sendto(a,b,c,d,e,f) 

#define socket(a,b,c)         lwip_socket(a,b,c) 

#define select(a,b,c,d,e)     lwip_select(a,b,c,d,e) 

#define ioctlsocket(a,b,c)    lwip_ioctl(a,b,c) 

 

#if LWIP_POSIX_SOCKETS_IO_NAMES 

#define read(a,b,c)           lwip_read(a,b,c) 

#define write(a,b,c)          lwip_write(a,b,c) 

#define close(s)              lwip_close(s) 

先不说实际的实现函数,光看这些定义的宏,就是标准

socket

所必须有的接口?/p>

 

 

接着看这些实际的函数实现。这些函数实现在

src\api\socket.c

中。先看下?/p>

受连接的函数,这个是

tcp

?/p>

 

原型?/p>

int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen)

 

可以看到这里?/p>

socket

类型参数

 s

,实际上是个

int

?/p>

 

在这个函数中的第一个函数调用是

sock = get_socket(s); 



ļ׺.doc޸Ϊ.docĶ

  • ZD6еϴ
  • amos - ֤ӷṹ̽ģ̳
  • 㶫ʡԶ̫滮
  • Ĺʩֳ⼰
  • ˽̰Сѧһ꼶ϲĽ̰[ȫ]
  • ְҵѵѧУ¼2018173
  • 2019ǨƹСѧѧѧеӦþƷ.doc.doc
  • ϰ⼰ο
  • ͨѧ - ͼ
  • еҵ1499Сֻ - ͼ

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@) ICP20003344-4