
Server-Side TCP
Diff: main.cpp
- Revision:
- 0:409058e5bb63
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Nov 07 20:25:52 2020 +0000 @@ -0,0 +1,78 @@ +#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; + } + + + \ No newline at end of file