forked from xuos/xiuos
fix problems in client recv
This commit is contained in:
parent
2df54e7f41
commit
04dc796f95
|
@ -9,7 +9,6 @@
|
||||||
#define TCP_PORT 12345
|
#define TCP_PORT 12345
|
||||||
|
|
||||||
const static uint32_t sn = 0;
|
const static uint32_t sn = 0;
|
||||||
const static uint32_t socket_tcp = 0;
|
|
||||||
|
|
||||||
#ifdef ETHERNET_AS_SERVER
|
#ifdef ETHERNET_AS_SERVER
|
||||||
static int32_t wiz_server_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
static int32_t wiz_server_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
||||||
|
@ -26,9 +25,9 @@ static int32_t wiz_server_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
||||||
uint32_t sent_size = 0;
|
uint32_t sent_size = 0;
|
||||||
memset(buf,0,buf_size);
|
memset(buf,0,buf_size);
|
||||||
strcpy(buf,"The message has been recved");
|
strcpy(buf,"The message has been recved");
|
||||||
ret = wiz_sock_send(socket_tcp, buf, buf_size);
|
ret = wiz_sock_send(sn, buf, buf_size);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
wiz_sock_close(socket_tcp);
|
wiz_sock_close(sn);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else if (opt == RECV_DATA) {
|
} else if (opt == RECV_DATA) {
|
||||||
|
@ -87,27 +86,27 @@ static uint32_t wiz_client_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
||||||
enum TCP_OPTION opt) {
|
enum TCP_OPTION opt) {
|
||||||
// assert(buf_size <= g_wiznet_buf_size);
|
// assert(buf_size <= g_wiznet_buf_size);
|
||||||
int32_t ret;
|
int32_t ret;
|
||||||
switch (getSn_SR(socket_tcp)) {
|
switch (getSn_SR(sn)) {
|
||||||
case SOCK_CLOSE_WAIT:
|
case SOCK_CLOSE_WAIT:
|
||||||
wiz_sock_disconnect(socket_tcp);
|
wiz_sock_disconnect(sn);
|
||||||
break;
|
break;
|
||||||
case SOCK_CLOSED:
|
case SOCK_CLOSED:
|
||||||
wiz_socket(socket_tcp, Sn_MR_TCP, 5000, 0x00);
|
wiz_socket(sn, Sn_MR_TCP, 5000, 0x00);
|
||||||
break;
|
break;
|
||||||
case SOCK_INIT:
|
case SOCK_INIT:
|
||||||
KPrintf("[SOCKET CLIENT] sock init.\n");
|
KPrintf("[SOCKET CLIENT] sock init.\n");
|
||||||
wiz_sock_connect(socket_tcp, dst_ip, dst_port);
|
wiz_sock_connect(sn, dst_ip, dst_port);
|
||||||
break;
|
break;
|
||||||
case SOCK_ESTABLISHED:
|
case SOCK_ESTABLISHED:
|
||||||
if (getSn_IR(socket_tcp) & Sn_IR_CON) {
|
if (getSn_IR(sn) & Sn_IR_CON) {
|
||||||
printf("[SOCKET CLIENT] %d:Connected\r\n", socket_tcp);
|
printf("[SOCKET CLIENT] %d:Connected\r\n", sn);
|
||||||
setSn_IR(socket_tcp, Sn_IR_CON);
|
setSn_IR(sn, Sn_IR_CON);
|
||||||
}
|
}
|
||||||
if (opt == SEND_DATA) {
|
if (opt == SEND_DATA) {
|
||||||
uint32_t sent_size = 0;
|
uint32_t sent_size = 0;
|
||||||
ret = wiz_sock_send(socket_tcp, buf, buf_size);
|
ret = wiz_sock_send(sn, buf, buf_size);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
wiz_sock_close(socket_tcp);
|
wiz_sock_close(sn);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else if (opt == RECV_DATA) {
|
} else if (opt == RECV_DATA) {
|
||||||
|
@ -145,15 +144,18 @@ void TestSocketAsClient(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
while(1){
|
while(1){
|
||||||
ret = wiz_client_op(client_sock, argv[2], sizeof(argv[2]), destination_ip, port,SEND_DATA);
|
ret = wiz_client_op(client_sock, argv[2], strlen(argv[2]), destination_ip, port,SEND_DATA);
|
||||||
PrivTaskDelay(10);
|
printf("sizeof:%d\n",strlen(argv[2]));
|
||||||
|
PrivTaskDelay(1000);
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
ret=wiz_client_op(client_sock, buf, BUFF_SIZE, destination_ip, port, RECV_DATA);
|
ret=wiz_client_op(client_sock, buf, BUFF_SIZE, destination_ip, port, RECV_DATA);
|
||||||
|
printf("read ret is %d\n",ret);
|
||||||
|
if(ret>0){
|
||||||
printf("client recv msg successfully!\n");
|
printf("client recv msg successfully!\n");
|
||||||
printf("%s\n",buf);
|
printf("%s\n",buf);
|
||||||
break;
|
}
|
||||||
};
|
};
|
||||||
PrivTaskDelay(100);
|
PrivTaskDelay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ extern void spi_select_cs(void);
|
||||||
extern void spi_deselete_cs(void);
|
extern void spi_deselete_cs(void);
|
||||||
|
|
||||||
// global configurations for w5500 tcp connection
|
// global configurations for w5500 tcp connection
|
||||||
const uint32_t socket_tcp = 0;
|
|
||||||
const uint32_t g_wiznet_buf_size = 2048;
|
const uint32_t g_wiznet_buf_size = 2048;
|
||||||
|
|
||||||
static wiz_NetInfo g_wiz_netinfo = {.mac = {0x00, 0x08, 0xdc, 0x11, 0x11, 0x11},
|
static wiz_NetInfo g_wiz_netinfo = {.mac = {0x00, 0x08, 0xdc, 0x11, 0x11, 0x11},
|
||||||
|
@ -269,27 +268,27 @@ uint32_t wiz_client_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
||||||
enum TCP_OPTION opt) {
|
enum TCP_OPTION opt) {
|
||||||
// assert(buf_size <= g_wiznet_buf_size);
|
// assert(buf_size <= g_wiznet_buf_size);
|
||||||
int32_t ret;
|
int32_t ret;
|
||||||
switch (getSn_SR(socket_tcp)) {
|
switch (getSn_SR(sn)) {
|
||||||
case SOCK_CLOSE_WAIT:
|
case SOCK_CLOSE_WAIT:
|
||||||
wiz_sock_disconnect(socket_tcp);
|
wiz_sock_disconnect(sn);
|
||||||
break;
|
break;
|
||||||
case SOCK_CLOSED:
|
case SOCK_CLOSED:
|
||||||
wiz_socket(socket_tcp, Sn_MR_TCP, 5000, 0x00);
|
wiz_socket(sn, Sn_MR_TCP, 5000, 0x00);
|
||||||
break;
|
break;
|
||||||
case SOCK_INIT:
|
case SOCK_INIT:
|
||||||
KPrintf("[SOCKET CLIENT] sock init.\n");
|
KPrintf("[SOCKET CLIENT] sock init.\n");
|
||||||
wiz_sock_connect(socket_tcp, dst_ip, dst_port);
|
wiz_sock_connect(sn, dst_ip, dst_port);
|
||||||
break;
|
break;
|
||||||
case SOCK_ESTABLISHED:
|
case SOCK_ESTABLISHED:
|
||||||
if (getSn_IR(socket_tcp) & Sn_IR_CON) {
|
if (getSn_IR(sn) & Sn_IR_CON) {
|
||||||
printf("[SOCKET CLIENT] %d:Connected\r\n", socket_tcp);
|
printf("[SOCKET CLIENT] %d:Connected\r\n", sn);
|
||||||
setSn_IR(socket_tcp, Sn_IR_CON);
|
setSn_IR(sn, Sn_IR_CON);
|
||||||
}
|
}
|
||||||
if (opt == SEND_DATA) {
|
if (opt == SEND_DATA) {
|
||||||
uint32_t sent_size = 0;
|
uint32_t sent_size = 0;
|
||||||
ret = wiz_sock_send(socket_tcp, buf, buf_size);
|
ret = wiz_sock_send(sn, buf, buf_size);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
wiz_sock_close(socket_tcp);
|
wiz_sock_close(sn);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else if (opt == RECV_DATA) {
|
} else if (opt == RECV_DATA) {
|
||||||
|
@ -348,9 +347,9 @@ int32_t wiz_server_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
||||||
}
|
}
|
||||||
if (opt == SEND_DATA) {
|
if (opt == SEND_DATA) {
|
||||||
uint32_t sent_size = 0;
|
uint32_t sent_size = 0;
|
||||||
ret = wiz_sock_send(socket_tcp, buf, buf_size);
|
ret = wiz_sock_send(sn, buf, buf_size);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
wiz_sock_close(socket_tcp);
|
wiz_sock_close(sn);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else if (opt == RECV_DATA) {
|
} else if (opt == RECV_DATA) {
|
||||||
|
|
|
@ -22,7 +22,6 @@ extern void spi_select_cs(void);
|
||||||
extern void spi_deselete_cs(void);
|
extern void spi_deselete_cs(void);
|
||||||
|
|
||||||
// global configurations for w5500 tcp connection
|
// global configurations for w5500 tcp connection
|
||||||
const uint32_t socket_tcp = 0;
|
|
||||||
const uint32_t g_wiznet_buf_size = 2048;
|
const uint32_t g_wiznet_buf_size = 2048;
|
||||||
|
|
||||||
static wiz_NetInfo g_wiz_netinfo = {.mac = {0x00, 0x08, 0xdc, 0x11, 0x11, 0x11},
|
static wiz_NetInfo g_wiz_netinfo = {.mac = {0x00, 0x08, 0xdc, 0x11, 0x11, 0x11},
|
||||||
|
@ -269,27 +268,27 @@ uint32_t wiz_client_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
||||||
enum TCP_OPTION opt) {
|
enum TCP_OPTION opt) {
|
||||||
// assert(buf_size <= g_wiznet_buf_size);
|
// assert(buf_size <= g_wiznet_buf_size);
|
||||||
int32_t ret;
|
int32_t ret;
|
||||||
switch (getSn_SR(socket_tcp)) {
|
switch (getSn_SR(sn)) {
|
||||||
case SOCK_CLOSE_WAIT:
|
case SOCK_CLOSE_WAIT:
|
||||||
wiz_sock_disconnect(socket_tcp);
|
wiz_sock_disconnect(sn);
|
||||||
break;
|
break;
|
||||||
case SOCK_CLOSED:
|
case SOCK_CLOSED:
|
||||||
wiz_socket(socket_tcp, Sn_MR_TCP, 5000, 0x00);
|
wiz_socket(sn, Sn_MR_TCP, 5000, 0x00);
|
||||||
break;
|
break;
|
||||||
case SOCK_INIT:
|
case SOCK_INIT:
|
||||||
KPrintf("[SOCKET CLIENT] sock init.\n");
|
KPrintf("[SOCKET CLIENT] sock init.\n");
|
||||||
wiz_sock_connect(socket_tcp, dst_ip, dst_port);
|
wiz_sock_connect(sn, dst_ip, dst_port);
|
||||||
break;
|
break;
|
||||||
case SOCK_ESTABLISHED:
|
case SOCK_ESTABLISHED:
|
||||||
if (getSn_IR(socket_tcp) & Sn_IR_CON) {
|
if (getSn_IR(sn) & Sn_IR_CON) {
|
||||||
printf("[SOCKET CLIENT] %d:Connected\r\n", socket_tcp);
|
printf("[SOCKET CLIENT] %d:Connected\r\n", sn);
|
||||||
setSn_IR(socket_tcp, Sn_IR_CON);
|
setSn_IR(sn, Sn_IR_CON);
|
||||||
}
|
}
|
||||||
if (opt == SEND_DATA) {
|
if (opt == SEND_DATA) {
|
||||||
uint32_t sent_size = 0;
|
uint32_t sent_size = 0;
|
||||||
ret = wiz_sock_send(socket_tcp, buf, buf_size);
|
ret = wiz_sock_send(sn, buf, buf_size);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
wiz_sock_close(socket_tcp);
|
wiz_sock_close(sn);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else if (opt == RECV_DATA) {
|
} else if (opt == RECV_DATA) {
|
||||||
|
@ -348,9 +347,9 @@ int32_t wiz_server_op(uint8_t sn, uint8_t *buf, uint32_t buf_size,
|
||||||
}
|
}
|
||||||
if (opt == SEND_DATA) {
|
if (opt == SEND_DATA) {
|
||||||
uint32_t sent_size = 0;
|
uint32_t sent_size = 0;
|
||||||
ret = wiz_sock_send(socket_tcp, buf, buf_size);
|
ret = wiz_sock_send(sn, buf, buf_size);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
wiz_sock_close(socket_tcp);
|
wiz_sock_close(sn);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else if (opt == RECV_DATA) {
|
} else if (opt == RECV_DATA) {
|
||||||
|
|
Loading…
Reference in New Issue