Have you set this up on the client side for uBuntu? Ubunto needs to be configured so the ports are open and the console mode is configuted to allow incoming NAT translations.
I will test it and communicate as soon as I figure out the problem.
It seems your server is not writing back a response to the client.
If I perform a portscan I do not get a response it reports "tcpwrapped"
With a browser I get "The connection was reset." which means the connection terminates without the browser having received a response.
I hereby upload a working sample that you can compare with side by side and I think it can help you figure out whats missing in your code.
The sample is from here http://blog.abhijeetr.com/2010/04/very-simple-http-server-writen-in-c.html I have just added the index page.