WebSocket client library
Diff: Websocket.cpp
- Revision:
- 14:c5ac3e26998f
- Parent:
- 13:3b058372cad9
- Child:
- 15:79bfbc0ad6bc
--- a/Websocket.cpp Tue Aug 30 09:25:28 2011 +0000 +++ b/Websocket.cpp Tue Aug 30 11:47:56 2011 +0000 @@ -19,6 +19,24 @@ eth_connected = false; response_server_eth = false; fillFields(wifi_use, url); + + + EthernetErr ethErr = eth.setup(); + if (ethErr) { + printf("\r\nERROR %d in setup.\r\n", ethErr); + } + + //we must use dnsresolver to find the ip address + if (server_ip == NULL) { + DNSResolver dr; + server_ip = dr.resolveName(ip_domain); + printf("\r\nserver with dns=%i.%i.%i.%i\r\n",server_ip[0],server_ip[1],server_ip[2],server_ip[3]); + } + + IpAddr ipt = eth.getIp(); + printf("\r\nmbed IP Address is %d.%d.%d.%d\r\n", ipt[0], ipt[1], ipt[2], ipt[3]); + + sock.setOnEvent(this, &Websocket::onTCPSocketEvent); } @@ -65,7 +83,7 @@ //if we use ethernet, we must decode ip address or use dnsresolver if (!wifi) { strcpy(buf, res); - + //we try to decode the ip address if (buf[0] >= '0' && buf[0] <= '9') { res = strtok(buf, "."); @@ -126,38 +144,26 @@ printf("\r\nip_domain: %s\r\npath: /%s\r\nport: %s\r\n\r\n",this->ip_domain, this->path, this->port); return true; } else if ( eth_use ) { - int i = 0; - EthernetErr ethErr = eth.setup(); - if (ethErr) { - printf("Error %d in setup.\r\n", ethErr); - return false; - } - - //we must use dnsresolver to find the ip address - if (server_ip == NULL) { - DNSResolver dr; - server_ip = dr.resolveName(ip_domain); - printf("server with dns=%i.%i.%i.%i\r\n",server_ip[0],server_ip[1],server_ip[2],server_ip[3]); - } - - IpAddr ipt = eth.getIp(); - printf("mbed IP Address is %d.%d.%d.%d\r\n", ipt[0], ipt[1], ipt[2], ipt[3]); - - sock.setOnEvent(this, &Websocket::onTCPSocketEvent); Host server (server_ip, atoi(port)); + sock.close(); TCPSocketErr bindErr = sock.connect(server); if (bindErr) { - printf("binderr: %d\r\n", bindErr); + printf("\r\nERROR binderr: %d\r\n", bindErr); return false; } - Timer tmr; tmr.start(); + + Timer stop; + stop.start(); + int i = 0; while (true) { Net::poll(); + if(stop.read() > 3) + return false; if (tmr.read() > 0.01) { tmr.reset(); if (eth_connected) {