|
|
@@ -97,13 +97,13 @@ int sw_udp_send(int skt, unsigned int ip, unsigned short port, char *buf, int se
|
|
|
int sw_udp_recv(int skt, unsigned int *ip, unsigned short *port, char *buf, int buf_size)
|
|
|
{
|
|
|
struct sockaddr_in from;
|
|
|
- unsigned int len = sizeof(from);
|
|
|
+ socklen_t len = sizeof(from);
|
|
|
|
|
|
- len = recvfrom(skt, buf, buf_size, 0, (struct sockaddr *)&from, &len);
|
|
|
- if(ip) *ip = from.sin_addr.s_addr;
|
|
|
- if(port) *port = from.sin_port;
|
|
|
+ int ret = recvfrom(skt, buf, buf_size, 0, (struct sockaddr *)&from, &len);
|
|
|
+ if(ret >= 0 && ip) *ip = from.sin_addr.s_addr;
|
|
|
+ if(ret >= 0 && port) *port = from.sin_port;
|
|
|
|
|
|
- return len;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
/* 配置udp socket */
|