File tree 2 files changed +22
-4
lines changed 2 files changed +22
-4
lines changed Original file line number Diff line number Diff line change @@ -152,14 +152,24 @@ bool Socket::accept(Socket & client_socket) {
152
152
153
153
uint32_t Socket::send (const void *data, uint32_t len) {
154
154
uint32_t bytes_sent = 0 ;
155
- _last_error = cy_socket_send (socket, data, len,
156
- CY_SOCKET_FLAGS_NONE, &bytes_sent);
155
+ switch (_protocol) {
156
+ case SOCKET_PROTOCOL_TCP:
157
+ _last_error = cy_socket_send (socket, data, len,
158
+ CY_SOCKET_FLAGS_NONE, &bytes_sent);
159
+ break ;
160
+ case SOCKET_PROTOCOL_UDP:
161
+ _last_error = cy_socket_sendto (socket, data, len,
162
+ CY_SOCKET_FLAGS_NONE, &address,
163
+ sizeof (cy_socket_sockaddr_t ), &bytes_sent);
164
+ break ;
165
+ }
157
166
if (_last_error != CY_RSLT_SUCCESS) {
158
167
_status = SOCKET_STATUS_ERROR;
159
168
}
160
169
161
170
return bytes_sent;
162
171
}
172
+
163
173
uint32_t Socket::available () {
164
174
return rx_buf.available ();
165
175
}
Original file line number Diff line number Diff line change @@ -53,11 +53,19 @@ int WiFiUDP::endPacket() {
53
53
}
54
54
55
55
size_t WiFiUDP::write (uint8_t ) {
56
- return 0 ;
56
+ return write (&byte, 1 ) ;
57
57
}
58
58
59
59
size_t WiFiUDP::write (const uint8_t *buffer, size_t size) {
60
- return 0 ;
60
+ if (size == 0 ) {
61
+ return 0 ;
62
+ }
63
+ size_t bytes_written = socket.send (buffer, size);
64
+ if (bytes_written != size) {
65
+ _status = SOCKET_STATUS_ERROR;
66
+ return 0 ;
67
+ }
68
+ return bytes_written;
61
69
}
62
70
63
71
int WiFiUDP::parsePacket () {
You can’t perform that action at this time.
0 commit comments