00001 #include <iostream>
00002 #include <ctime>
00003 #include <socklibpp/sockstream.h>
00004
00005 using namespace std;
00006 using namespace socklibpp;
00007
00008 int main()
00009 {
00010 addr_in local(addr_in::addr_any, 0);
00011 local.port("daytime");
00012
00013 sock server;
00014
00015 server.create(sock::pf_inet, sock::sock_stream);
00016
00017 if (!server.bind(local)) {
00018 cerr << "Could not bind: " << server.error << endl;
00019 return 1;
00020 }
00021
00022 if (!server.listen()) {
00023 cerr << "Could not listen: " << server.error << endl;
00024 return 1;
00025 }
00026
00027 cout << "Running daytime server on " << local << endl;
00028
00029 while (1) {
00030 addr_in client_addr;
00031 sock client = server.accept(client_addr);
00032
00033 cout << "Serving client " << client_addr << endl;
00034
00035
00036 client.shutdown(sock::shut_recv);
00037
00038 time_t now = time(0);
00039 const char * timestr = ctime(&now);
00040
00041 client.send(timestr, strlen(timestr));
00042
00043 client.close();
00044 }
00045 }