Sample to show hanging during socket initialization
Dependencies: EthernetInterface NTPClient mbed-rtos mbed
sample server (python) to go with the RTOSTest
Import programRTOSTest
Sample to show hanging during socket initialization
#!/usr/bin/python2.7
import sys, os
import asyncore, socket
import time, datetime
class EchoClient(asyncore.dispatcher_with_send):
def handle_read(self):
buffer = self.recv(1024)
if buffer:
print str(datetime.datetime.fromtimestamp(time.time()))
print buffer
else:
self.close()
class Server(asyncore.dispatcher):
def __init__(self, host, port):
asyncore.dispatcher.__init__(self)
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.set_reuse_addr()
self.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
self.bind(('', port))
self.listen(8)
def handle_accept(self):
socket, address = self.accept()
print str(datetime.datetime.fromtimestamp(time.time()))
print 'Connection by', address
EchoClient(socket)
s = Server('', 8080)
asyncore.loop()
Diff: main.cpp
- Revision:
- 1:92d3f1118200
- Parent:
- 0:5197a41c178f
--- a/main.cpp Thu Sep 27 12:06:18 2012 +0000
+++ b/main.cpp Thu Sep 27 12:14:57 2012 +0000
@@ -4,6 +4,9 @@
#include "EthernetInterface.h"
#include "NTPClient.h"
+// XXX: Change this to a valid IP of your network.
+const char *server_ip = "10.0.1.253";
+const unsigned short server_port = 8080;
const char *newline = "\r\n";
const unsigned int connection_timeout = 6000;
@@ -51,7 +54,7 @@
printf("%s:%d nmessages:%d%s", __FILE__, __LINE__, nmessages, newline);
if (!socket.is_connected()) {
- socket.connect("10.0.1.253", 8080);
+ socket.connect(server_ip, server_port);
}
printf("%s:%d%s", __FILE__, __LINE__, newline);
