WebSocket client library
Diff: Websocket.cpp
- Revision:
- 12:1f6b9451a608
- Parent:
- 10:4f02275c34ee
- Child:
- 13:3b058372cad9
--- a/Websocket.cpp Thu Aug 25 06:11:04 2011 +0000 +++ b/Websocket.cpp Fri Aug 26 09:17:30 2011 +0000 @@ -9,15 +9,6 @@ fillFields(wifi_use, url); } - -Websocket::Websocket(char * url) { - wifi_use = false; - eth_use = true; - eth_connected = false; - response_server_eth = false; - fillFields(wifi_use, url); -} - void Websocket::fillFields(bool wifi, char * url) { char *res = NULL; char *res1 = NULL; @@ -61,6 +52,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, "."); @@ -72,13 +64,7 @@ i++; } server_ip = IpAddr(ip[0], ip[1], ip[2], ip[3]); - printf("server=%i.%i.%i.%i\n",server_ip[0],server_ip[1],server_ip[2],server_ip[3]); - } - //we must use dnsresolver to find the ip address - else { - DNSResolver dr; - server_ip = dr.resolveName(buf); - printf("server=%i.%i.%i.%i\n",server_ip[0],server_ip[1],server_ip[2],server_ip[3]); + printf("server without dns=%i.%i.%i.%i\n",server_ip[0],server_ip[1],server_ip[2],server_ip[3]); } } } @@ -86,6 +72,18 @@ } +Websocket::Websocket(char * url) { + wifi_use = false; + server_ip = NULL; + eth_use = true; + eth_writeable = false; + eth_readable = false; + eth_connected = false; + response_server_eth = false; + fillFields(wifi_use, url); +} + + bool Websocket::connect() { @@ -136,8 +134,13 @@ printf("Error %d in setup.\r\n", ethErr); return false; } - - printf("setup OK\r\n"); + + //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]); @@ -146,7 +149,7 @@ Host server (server_ip, atoi(port)); TCPSocketErr bindErr = sock.connect(server); if (bindErr) { - printf("binderr: %d", bindErr); + printf("binderr: %d\r\n", bindErr); return false; } @@ -156,7 +159,7 @@ while (true) { Net::poll(); - if (tmr.read() > 0.1) { + if (tmr.read() > 0.01) { tmr.reset(); if (eth_connected) { switch (i) { @@ -324,12 +327,8 @@ if (e == TCPSOCKET_CONNECTED) { eth_connected = true; printf("TCP Socket Connected\r\n"); - } - else if (e == TCPSOCKET_WRITEABLE) - { - } - else if (e == TCPSOCKET_READABLE) - { + } else if (e == TCPSOCKET_WRITEABLE) { + } else if (e == TCPSOCKET_READABLE) { int len = sock.recv(eth_rx, 512); eth_rx[len] = 0; if (!response_server_eth) { @@ -340,9 +339,7 @@ if (found != string::npos) response_server_eth = true; } - } - else - { + } else { printf("TCP Socket Fail\r\n"); eth_connected = false; }