This is a difficult tradeoff to measure. I think large datagrams won't be used very frequently. So it is better to not lock a large buffer to each socket object and instead allocate and deallocate for each operation receiving a datagram larger than UDP_DATAGRAMSIZE.
31 lines
801 B
C
31 lines
801 B
C
#ifndef UDP_H
|
|
#define UDP_H
|
|
/*=========================================================================*\
|
|
* UDP object
|
|
* LuaSocket toolkit
|
|
*
|
|
* The udp.h module provides LuaSocket with support for UDP protocol
|
|
* (AF_INET, SOCK_DGRAM).
|
|
*
|
|
* Two classes are defined: connected and unconnected. UDP objects are
|
|
* originally unconnected. They can be "connected" to a given address
|
|
* with a call to the setpeername function. The same function can be used to
|
|
* break the connection.
|
|
\*=========================================================================*/
|
|
#include "lua.h"
|
|
|
|
#include "timeout.h"
|
|
#include "socket.h"
|
|
|
|
#define UDP_DATAGRAMSIZE 8192
|
|
|
|
typedef struct t_udp_ {
|
|
t_socket sock;
|
|
t_timeout tm;
|
|
int family;
|
|
} t_udp;
|
|
typedef t_udp *p_udp;
|
|
|
|
int udp_open(lua_State *L);
|
|
|
|
#endif /* UDP_H */
|