First version
Dependencies: mbed EthernetInterface mbed-rto
Diff: TCPlistener.cpp
- Revision:
- 13:a6c651a1e51c
- Parent:
- 12:f3db7045e220
- Child:
- 14:5f1fda6b9140
diff -r f3db7045e220 -r a6c651a1e51c TCPlistener.cpp --- a/TCPlistener.cpp Wed Apr 18 07:41:38 2018 +0000 +++ b/TCPlistener.cpp Wed Apr 18 08:09:56 2018 +0000 @@ -9,24 +9,16 @@ server.bind(4000); server.set_blocking(false); for(int i=0;i<10;i++){ - connections[i]=0; + connections[i]=new TCPSocketConnection(); } } void TCPlistener::listen(){ server.listen(10);//Accept 10 connections at a time. //Source:https://os.mbed.com/handbook/Socket - bool searchLocation=true; - for(int i=0;i<10&&searchLocation;i++){ - if(connections[i]!=0){ - connections[i]=new TCPSocketConnection(); - - searchLocation=false; - } - } - bool incomingConnection=true; while(incomingConnection){ + TCPSocketConnection *connection=newConnection(); server.accept(client); } //client.set_blocking(false, 100); @@ -43,6 +35,25 @@ printf("Segment ontvangen van %s:%i met inhoud \"%s\"\r\n", client.get_address(),client.get_port(),contents); } -void TCPlistener::firstEmptyLocation(){ - -} \ No newline at end of file +TCPSocketConnection * TCPlistener::newConnection(TCPSocketConnection **connectionArray,int arraySize){ + 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]; + } + } + return 0; +} + +/* + if(){ + connections[i]=new TCPSocketConnection(); + + searchLocation=false; + } + */ \ No newline at end of file