MCPcopy Create free account
hub / github.com/JoaoLopesF/RemoteDebug / write

Method write

src/utility/WebSockets.cpp:610–648  ·  view source on GitHub ↗

* write x byte to tcp or get timeout * @param client WSclient_t * * @param out uint8_t * data buffer * @param n size_t byte count * @return bytes send */

Source from the content-addressed store, hash-verified

608 * @return bytes send
609 */
610size_t WebSockets::write(WSclient_t * client, uint8_t *out, size_t n) {
611 if(out == NULL) return 0;
612 if(client == NULL) return 0;
613 unsigned long t = millis();
614 size_t len = 0;
615 size_t total = 0;
616 DEBUG_WEBSOCKETS("[write] n: %zu t: %lu\n", n, t);
617 while(n > 0) {
618 if(client->tcp == NULL) {
619 DEBUG_WEBSOCKETS("[write] tcp is null!\n");
620 break;
621 }
622
623 if(!client->tcp->connected()) {
624 DEBUG_WEBSOCKETS("[write] not connected!\n");
625 break;
626 }
627
628 if((millis() - t) > WEBSOCKETS_TCP_TIMEOUT) {
629 DEBUG_WEBSOCKETS("[write] write TIMEOUT! %lu\n", (millis() - t));
630 break;
631 }
632
633 len = client->tcp->write((const uint8_t*)out, n);
634 if(len) {
635 t = millis();
636 out += len;
637 n -= len;
638 total += len;
639 //DEBUG_WEBSOCKETS("write %d left %d!\n", len, n);
640 } else {
641 //DEBUG_WEBSOCKETS("write %d failed left %d!\n", len, n);
642 }
643#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266)
644 delay(0);
645#endif
646 }
647 return total;
648}
649
650size_t WebSockets::write(WSclient_t * client, const char *out) {
651 if(client == NULL) return 0;

Callers 2

Calls

no outgoing calls

Tested by

no test coverage detected