Files
TAIXIN/sdk/app/socketModule/socket_module.c

61 lines
1.2 KiB
C

#include "lwip/api.h"
#include "lwip/sockets.h"
#include "socket_module.h"
//udp服务器创建
int creat_udp_socket(int port)
{
int t_socket;
struct sockaddr_in addr;
int err;
t_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (t_socket == INVALID_SOCKET)
{
_os_printf("socket error !");
return 0;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = htons(INADDR_ANY);
err = bind(t_socket, (struct sockaddr*) &addr, sizeof(struct sockaddr_in));
if (err == - 1)
{
_os_printf("%s bind err:%d,maybe port %d had be bind\n",__FUNCTION__,err,port);
closesocket(t_socket);
return -1;
}
return t_socket;
}
int creat_tcp_socket(int port)
{
int t_socket;
struct sockaddr_in addr;
int err;
t_socket = socket(AF_INET, SOCK_STREAM, 0);
if (t_socket == INVALID_SOCKET)
{
_os_printf("socket error !");
return 0;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = htons(INADDR_ANY);
err = bind(t_socket, (struct sockaddr*) &addr, sizeof(struct sockaddr_in));
if (err == - 1)
{
_os_printf("%s bind err:%d,maybe port %d had be bind\n",__FUNCTION__,err,port);
closesocket(t_socket);
return 0;
}
return t_socket;
}