UDP Client
Embed:
(wiki syntax)
Show/hide line numbers
UsaClient.cpp
00001 #include "UsaClient.hpp" 00002 00003 UsaClient::UsaClient(EthernetInterface* _net) 00004 { 00005 net = _net; 00006 sock.open(net); 00007 } 00008 00009 UsaClient::UsaClient(EthernetInterface* _net, const char* ip, int port) 00010 { 00011 net = _net; 00012 sock.open(net); 00013 socketAddress.set_ip_address(ip); 00014 socketAddress.set_port(port); 00015 } 00016 00017 int UsaClient::Write(int address, const void* data, int size) 00018 { 00019 nsapi_size_or_error_t e; 00020 write_buffer.address = (uint32_t)address; 00021 write_buffer.rw = 0x00; 00022 write_buffer.option = 0x00; 00023 write_buffer.size = (uint16_t)size; 00024 uint8_t* p = (uint8_t*)data; 00025 for (int i = 0; i < size; i++, p++) 00026 { 00027 write_buffer.data[i] = *p; 00028 } 00029 e = sock.sendto(socketAddress, &write_buffer, 8 + size); 00030 return (int)e; 00031 } 00032 00033 int UsaClient::Read(int address, const void* data, int size) 00034 { 00035 nsapi_size_or_error_t e; 00036 SocketAddress server_address; 00037 read_buffer.address = (uint32_t)address; 00038 read_buffer.rw = 0x01; 00039 read_buffer.option = 0x00; 00040 read_buffer.size = (uint16_t)size; 00041 e = sock.sendto(socketAddress, &read_buffer, 8); 00042 00043 e = sock.recvfrom(&server_address, &read_buffer, 8 + size); 00044 uint8_t* p = (uint8_t*)data; 00045 for (int i = 0; i < size; i++, p++) 00046 { 00047 *p = read_buffer.data[i]; 00048 } 00049 return (int)e; 00050 }
Generated on Mon Jul 18 2022 16:51:38 by
1.7.2