コード例 #1
0
ファイル: serv.c プロジェクト: Hirokazukisaragi/gungnir
int main(int argc,char *argv[]){
  int soc;
  char buf[1024],*ptr;
  socklen_t len;
  soc = wsock(argv[1]);
  char rbuf[NI_MAXHOST],sbuf[NI_MAXSERV];
  char tbuf[2048];
  struct sockaddr_storage from;
  int acc;
  for(;;){
    len = (socklen_t)sizeof(from);
    if((acc = accept(soc,(struct sockaddr *)&from,&len)) < 0){
      printf("accept error\n");
      exit(1);
    }else{
      socklen_t len = 0;
      getnameinfo((struct sockaddr *)&from,len,rbuf,sizeof(rbuf),sbuf,sizeof(sbuf),NI_NUMERICHOST | NI_NUMERICSERV);
      for(;;){
	if(!(strcmp("quit\n",tbuf)))break;
       	memset(&tbuf,0,sizeof(rbuf));
	
	recv(acc,tbuf,sizeof(tbuf),0);
	send(acc,tbuf,sizeof(tbuf),0);
	//fgets(tbuf,1024,stdin);
	printf("%s\n",tbuf);
	
      }
    }
  }
}
コード例 #2
0
ファイル: TCPServer.hpp プロジェクト: marcioapaiva/tribble
    void start() {
        std::cout << "Starting..." << "\n";

        StreamSocket wsock(port);
        while (true) {
            ConnectionHandler* cHandler = cHandlerFactory->getNewHandler();
            StreamSocket sock = wsock.accept();
            std::cout << "Incoming connection!\n";

            std::thread t([&](StreamSocket sock) {cHandler->handle(sock);}, sock);
            t.detach();
        }
    }
コード例 #3
0
ファイル: main.hpp プロジェクト: medusade/talas
    virtual int run_tcp_server(int argc, char_t **argv, char_t **env) {
        int err = 0;
        talas::protocol::tls::openssl::server_context context;
        talas::protocol::tls::openssl::server server(context);

        if ((create_context(context))) {

            if ((server.create())) {

                if ((network::os::sockets::startup())) {

                    if ((ep_.attach(accept_port_))) {

                        if ((sk_.open(tp_))) {

                            if ((sk_.listen(ep_))) {
                                network::os::socket sk;
                                io::socket::tcp::reader rsock(sk);
                                io::socket::tcp::writer wsock(sk);
                                talas::protocol::tls::openssl::connection connection(rsock, wsock);

                                if ((sk_.accept(sk, ep_))) {

                                    if ((server.accept(connection))) {

                                        respond(connection);
                                    }
                                    sk.close();
                                }
                            }
                            sk_.close();
                        }
                        ep_.detach();
                    }
                    network::os::sockets::cleanup();
                }
                server.destroy();
            }
            destroy_context(context);
        }
        return err;
    }
コード例 #4
0
ファイル: echo_server.cpp プロジェクト: marcioapaiva/tribble
int main() {
    const short port = 5000;

    ServerSocket wsock(5000);

    std::cout << "Listening on port " << port << "\n\n";

    //Serves a single client
    StreamSocket sock = wsock.accept();
    string rcvd;

    do {
        rcvd = sock.receive(1024);
        sock.send_all(rcvd);
    }
    while (rcvd.size() > 0);

    std::cout << "Connection closed" << "\n";

    return 0;
}
コード例 #5
0
ファイル: main.hpp プロジェクト: medusade/talas
    virtual int run_tcp_client(int argc, char_t **argv, char_t **env) {
        int err = 0;
        talas::protocol::tls::openssl::client_context context;
        talas::protocol::tls::openssl::client client(context);
        io::socket::tcp::reader rsock(sk_);
        io::socket::tcp::writer wsock(sk_);
        talas::protocol::tls::openssl::connection connection(rsock, wsock);

        if ((create_context(context))) {

            if ((client.create())) {

                if ((network::os::sockets::startup())) {

                    if ((ep_.attach(host_, port_))) {

                        if ((sk_.open(tp_))) {

                            if ((sk_.connect(ep_))) {

                                if ((client.connect(connection))) {

                                    request(connection);
                                }
                            }
                            sk_.close();
                        }
                        ep_.detach();
                    }
                    network::os::sockets::cleanup();
                }
                client.destroy();
            }
            destroy_context(context);
        }
        return err;
    }