
Server-Side TCP
main.cpp
- Committer:
- flixus
- Date:
- 2020-11-07
- Revision:
- 0:409058e5bb63
File content as of revision 0:409058e5bb63:
#include "mbed.h" #include "EthernetInterface.h" #include "C12832.h" TCPServer Server(EthernetInterface eth); EthernetInterface Connect(void); void ReceiveData(TCPSocket client); void PrintData(void); DigitalOut led(LED1); C12832 lcd(D11, D13, D12, D7, D10); float temp = 0; char pwm =' '; char senderID = ' '; int main() { printf("Server example\n\r"); EthernetInterface eth = Connect(); TCPServer srv = Server(eth); while(true){ TCPSocket client; SocketAddress client_addr; char *buffer = "Hello TCP client!\r\n"; srv.accept(&client, &client_addr); printf("Accepted %s:%d\n\r", client_addr.get_ip_address(), client_addr.get_port()); ReceiveData(client); client.send(buffer, 256); PrintData(); client.close(); } } void PrintData(void){ lcd.cls(); lcd.locate(0,3); lcd.printf("Temp = %.1f\n", temp); lcd.printf("PWM = %d\n", pwm); lcd.printf("ID Sender = %d\n", senderID); } void ReceiveData(TCPSocket client){ char data[4]; client.recv(data, sizeof data); float temp = float((data[0]<<8)|data[1]) / 256.0; char pwm = data[2]; char senderID = data[3]; printf("The temperature is: %f\r\n", temp); printf("The PWM value is: %d\r\n", pwm); printf("The ID from the sender is: %d\r\n", senderID); } EthernetInterface Connect(void){ EthernetInterface eth; eth.set_network("192.168.0.10","255.255.255.0","192.168.0.1"); eth.connect(); printf("The Server IP address is '%s'\n\r", eth.get_ip_address()); return eth; } TCPServer Server(EthernetInterface eth){ TCPServer srv(ð); srv.bind(4000); srv.listen(); return srv; }