demo versie 16/05
Dependencies: EthernetInterface mbed-rto mbed
Fork of ProjectVLC by
TCPlistener.cpp
- Committer:
- KlaasGovaerts
- Date:
- 2018-04-18
- Revision:
- 15:5f1fda6b9140
- Parent:
- 14:a6c651a1e51c
- Child:
- 16:ffd311730575
File content as of revision 15:5f1fda6b9140:
#include "TCPlistener.h" TCPlistener::TCPlistener(){ char ip[]="192.168.0.253"; char mask[]="255.255.255.0"; char gateway[]="192.168.0.254"; eth.init(ip,mask,gateway); eth.connect(); server.bind(4000); server.set_blocking(false); for(int i=0;i<10;i++){ connections[i]=0; } arraySize=10; } void TCPlistener::listen(){ //server.listen(10);//Accept 10 connections at a time. //Source:https://os.mbed.com/handbook/Socket bool incomingConnection=true; while(incomingConnection){ TCPSocketConnection *connection=newConnection(); if(server.accept(connection)==-1) incomingConnection=false; } //client.set_blocking(false, 100); printf("Connection from: %s\n", client.get_address()); } void TCPlistener::receivePacket(char *contents,int size){ int n = server.receive(contents, size); contents[n] = '\0'; printf("Segment ontvangen van %s:%i met inhoud \"%s\"\r\n", client.get_address(),client.get_port(),contents); } TCPSocketConnection * TCPlistener::newConnection(){ bool searchLocation=true; for(int i=0;i<arraySize&&searchLocation;i++){ if(connections[i]==0){ connections[i]=new TCPSocketConnection(); return connections[i]; } else if(!(connections[i]->is_connected())){ delete connections[i]; connections[i]=new TCPSocketConnection(); return connections[i]; } } return 0; } /* if(){ connections[i]=new TCPSocketConnection(); searchLocation=false; } */