13 #include <Atlas/Net/Stream.h> 15 #include "DebugBridge.h" 21 #include <sys/types.h> 22 #include <sys/socket.h> 23 #include <netinet/in.h> 27 using namespace Atlas;
30 int main(
int argc,
char** argv)
32 int server_fd = socket(PF_INET, SOCK_STREAM, 0);
34 cerr <<
"ERROR: Could not open socket" << endl << flush;
38 setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &flag,
sizeof(flag));
39 struct sockaddr_in sin;
40 sin.sin_family = AF_INET;
41 sin.sin_port = htons(6767);
42 sin.sin_addr.s_addr = 0L;
43 if (bind(server_fd, (
struct sockaddr *)&sin,
sizeof(sin)) < 0) {
49 struct sockaddr_in sin2;
50 unsigned int addr_len =
sizeof(sin);
52 sin2.sin_family = AF_INET;
53 sin2.sin_port = htons(6767);
54 sin2.sin_addr.s_addr = 0L;
56 cout <<
"Accepting.." << endl << flush;
57 int asock_fd = ::accept(server_fd, (
struct sockaddr *)&sin2, &addr_len);
59 cout <<
"accepted client connection!" << endl;
62 cerr <<
"ERROR: Failed to accept socket connection" << endl << flush;
66 iostream client(&cli_buf);
73 cout <<
"Negotiating.... " << flush;
75 while (accepter.getState() == Net::StreamAccept::IN_PROGRESS)
77 cout <<
"done." << endl;
80 if (accepter.getState() == Net::StreamAccept::FAILED) {
81 cerr <<
"Negotiation failed." << endl;
89 cout <<
"Polling client..." << endl;
99 cout <<
"Client exited." << endl;