fix: high thoughput(payload>10KB) cause send failed

1. socket would block at send(), return -1 when set MSG_DONTWAIT
2. changed to ~MSG_DONTWAIT, send() will block until all payload send over
3. recv() should keep MSG_DONTWAIT attribute, otherwise will lead to low thoughtput
This commit is contained in:
Chen Wu
2019-01-03 10:39:05 +08:00
parent 20cf435848
commit 87421bfe92

View File

@ -155,7 +155,7 @@ static int esp_write(Network *n, unsigned char *buffer, unsigned int len, unsign
if (FD_ISSET(n->my_socket, &fdset)) {
do {
rc = send(n->my_socket, buffer + sentLen, len - sentLen, MSG_DONTWAIT);
rc = send(n->my_socket, buffer + sentLen, len - sentLen, 0);
if (rc > 0) {
sentLen += rc;