demo versie 16/05
Dependencies: EthernetInterface mbed-rto mbed
Fork of ProjectVLC by
Diff: TCPlistener.cpp
- Revision:
- 15:5f1fda6b9140
- Parent:
- 14:a6c651a1e51c
- Child:
- 16:ffd311730575
--- a/TCPlistener.cpp Wed Apr 18 08:09:56 2018 +0000 +++ b/TCPlistener.cpp Wed Apr 18 08:35:32 2018 +0000 @@ -9,17 +9,18 @@ server.bind(4000); server.set_blocking(false); for(int i=0;i<10;i++){ - connections[i]=new TCPSocketConnection(); + connections[i]=0; } + arraySize=10; } void TCPlistener::listen(){ - server.listen(10);//Accept 10 connections at a time. + //server.listen(10);//Accept 10 connections at a time. //Source:https://os.mbed.com/handbook/Socket - bool incomingConnection=true; while(incomingConnection){ TCPSocketConnection *connection=newConnection(); - server.accept(client); + if(server.accept(connection)==-1) + incomingConnection=false; } //client.set_blocking(false, 100); @@ -35,16 +36,16 @@ printf("Segment ontvangen van %s:%i met inhoud \"%s\"\r\n", client.get_address(),client.get_port(),contents); } -TCPSocketConnection * TCPlistener::newConnection(TCPSocketConnection **connectionArray,int arraySize){ +TCPSocketConnection * TCPlistener::newConnection(){ bool searchLocation=true; for(int i=0;i<arraySize&&searchLocation;i++){ - if(connectionArray[i]==0){ - connectionArray[i]=new TCPSocketConnection(); - return connectionArray[i]; - } else if(!(connectionArray[i]->is_connected())){ - delete connectionArray[i]; - connectionArray[i]=new TCPSocketConnection(); - return connectionArray[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;