44 #define SOCK_ANY_PORT_NUM 0xC000;
48 #define CHECK_SOCKNUM() \
50 if(sn > _WIZCHIP_SOCK_NUM_) return SOCKERR_SOCKNUM; \
53 #define CHECK_SOCKMODE(mode) \
55 if((getSn_MR(sn) & 0x0F) != mode) return SOCKERR_SOCKMODE; \
58 #define CHECK_SOCKINIT() \
60 if((getSn_SR(sn) != SOCK_INIT)) return SOCKERR_SOCKINIT; \
63 #define CHECK_SOCKDATA() \
65 if(len == 0) return SOCKERR_DATALEN; \
75 int8_t
socket(uint8_t sn, uint8_t protocol, uint16_t port, uint8_t flag)
84 #if ( _WIZCHIP_ < 5200 )
93 setSn_MR(sn, (protocol | (flag & 0xF0)));
96 port = sock_any_port++;
161 int8_t
connect(uint8_t sn, uint8_t * addr, uint16_t port)
166 if( *((uint32_t*)addr) == 0xFFFFFFFF || *((uint32_t*)addr) == 0)
return SOCKERR_IPINVALID;
221 int32_t
send(uint8_t sn, uint8_t * buf, uint16_t len)
232 if (len > freesize) len = freesize;
242 }
while (freesize < len);
267 int32_t
recv(uint8_t sn, uint8_t * buf, uint16_t len)
270 uint16_t recvsize = 0;
276 if(recvsize < len) len = recvsize;
286 }
while(recvsize < len);
305 int32_t
sendto(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t port)
308 uint16_t freesize = 0;
329 if (len > freesize) len = freesize;
334 }
while(freesize < len);
344 setSn_IR(sn, (Sn_IR_SENDOK | Sn_IR_TIMEOUT));
360 int32_t
recvfrom(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t *port)
373 #if ( _WIZCHIP_ < 5200 )
386 }
while(pack_len < len);
400 *port = (*port << 8) + head[5];
402 pack_len = (pack_len << 8) + head[7];
414 pack_len = (pack_len<<8) + head[1];
422 #if ( _WIZCHIP_ < 5200 )
432 pack_len = (pack_len << 8) + head[5];