当前位置: 首页>>代码示例>>C++>>正文


C++ close_socket函数代码示例

本文整理汇总了C++中close_socket函数的典型用法代码示例。如果您正苦于以下问题:C++ close_socket函数的具体用法?C++ close_socket怎么用?C++ close_socket使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了close_socket函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: close_socket

///----------------------------------------------------------------------------
void socket::connect(yield_t yield)
{
  if (sending_)
  {
    reconn_ = true;
  }
  close_socket();
  boost::asio::ip::tcp::resolver::query query(host_, port_);
  boost::asio::ip::tcp::resolver::iterator itr = reso_.async_resolve(query, yield);
  if (yield.ec_ && *yield.ec_)
  {
    return;
  }
  boost::asio::async_connect(sock_, itr, yield);
}
开发者ID:HappySky2046,项目名称:gce,代码行数:16,代码来源:socket.cpp

示例2: sendTrigger

/*
 Description: send a broadcast trigger to all WARP nodes in the setup
*/
void sendTrigger(){

	assert(initialized ==1);

	int trig_sock = init_socket();

	get_send_buffer_size(trig_sock);
    get_receive_buffer_size(trig_sock);
	char trig_buffer[18] = {0, 0, 255, 255, 0, 202, 0, 0, 0, 4, 0, 13, 0, 0, 0, 0, 0, 1};

	// port 10000 is used for broadcast
	sendData(trig_sock, trig_buffer, sizeof(trig_buffer), "10.0.0.255", 10000);

	close_socket(trig_sock);
}
开发者ID:gkchai,项目名称:garud,代码行数:18,代码来源:warp_functions.c

示例3: do_delete

void do_delete( CHAR_DATA * ch, char * argument ) {
  DESCRIPTOR_DATA * d;

  if ( !ch->desc ) {
    return;
  }

  if ( str_cmp( ch->desc->incomm, "delete yes" ) ) {
    send_to_char( C_DEFAULT, "If you want to DELETE yourself, type 'delete yes'\n\r", ch );
    return;
  }

  if ( ch->desc->original || IS_NPC( ch ) ) {
    send_to_char( C_DEFAULT, "You may not delete a switched character.\n\r", ch );
    return;
  }

  stop_fighting( ch, TRUE );
  send_to_char( C_DEFAULT, "You are no more.\n\r", ch );
  act( AT_BLOOD, "$n is no more.", ch, NULL, NULL, TO_ROOM );
  info( "%s is no more.", (int)( ch->name ), 0 );
  sprintf( log_buf, "$N has DELETED in room vnum %d.", ch->in_room->vnum );
  wiznet( log_buf, ch, NULL, WIZ_LOGINS, 0, 0 );

  // delete player file
  sprintf( log_buf, "%s%c/%s", PLAYER_DIR, LOWER( ch->name[ 0 ] ), capitalize( ch->name ) );
  remove( log_buf );

  // delete finger file
  sprintf( log_buf, "%s%c/%s.fng", PLAYER_DIR, LOWER( ch->name[ 0 ] ), capitalize( ch->name ) );
  remove( log_buf );

  // delete corpses
  sprintf( log_buf, "%s%c/%s.cps", PLAYER_DIR, LOWER( ch->name[ 0 ] ), capitalize( ch->name ) );
  remove( log_buf );

  delete_playerlist( ch->name );

  d = ch->desc;

  extract_char( ch, TRUE );

  if ( d ) {
    close_socket( d );
  }

  return;
}
开发者ID:zachflower,项目名称:oasis-mud,代码行数:48,代码来源:act_comm.c

示例4: close_ssl_socket

/**
 * Closes a ssl connection (ssl socket + net socket)
 * @param ssl ssl connection
 * @return TRUE, or FALSE if an error has occured.
 */
int close_ssl_socket(ssl_connection *ssl) {
  int rv;

  if (!ssl)
    return FALSE;

  if (! (rv = SSL_shutdown(ssl->handler))) {
    shutdown(ssl->socket, 1);
    rv = SSL_shutdown(ssl->handler);
  }

  close_socket(ssl->socket);
  cleanup_ssl_socket(ssl);

  return (rv > 0) ? TRUE : FALSE;
}
开发者ID:bruce2008github,项目名称:monit,代码行数:21,代码来源:ssl.c

示例5: tcp_listener_cleaner

void tcp_listener_cleaner(void *arg)
{
	int socket;
	socket = *((int *) arg);
	#ifdef PLMC_LIB_DEBUG
	fprintf(plmc_lib_debug, "tcp_listener_cleaner was called\n");
	fflush(plmc_lib_debug);
	#endif

	/* Close socket so no more connection can happen */
	close_socket(socket);
	if (pthread_cancel(plmc_connection_mgr_id) != 0) {
		syslog(LOG_ERR, "plmc_lib: tcp_listener_cleaner "
			"encountered an error canceling a thread");
        }
}
开发者ID:helioloureiro,项目名称:opensaf-fork,代码行数:16,代码来源:plmc_lib_internal.c

示例6: accept_client_connection

MODULE accept_client_connection (THREAD *thread)
{
    sock_t
        slave_socket;                   /*  Connected socket                 */

    tcb = thread-> tcb;                 /*  Point to thread's context        */
    slave_socket = accept_socket (tcb-> handle);
    if (slave_socket != INVALID_SOCKET)
      {
        close_socket (tcb-> handle);
        tcb-> handle = slave_socket;
      }
    else
    if (sockerrno != EAGAIN)
        raise_exception (exception_event);
}
开发者ID:imatix,项目名称:Xitami-25,代码行数:16,代码来源:smtftpd.c

示例7: replay_event_loop

void replay_event_loop(void)
{
    while (!quit_services) {
        if (!replay_connected) {
            /* this time fudging is to get some of the logging right */
            self->link_time = self->boot = now;
            cManager.uplink->state = AUTHENTICATING;
            irc_introduce(cManager.uplink->password);
            replay_connected = 1;
        } else if (!replay_read()) {
            log_module(MAIN_LOG, LOG_ERROR, "Connection to server lost.");
            close_socket();
        }
        timeq_run();
    }
}
开发者ID:Cloudxtreme,项目名称:x3,代码行数:16,代码来源:proto-common.c

示例8: block_readpipe

int socket_server::ctrl_cmd(struct socket_message * result) 
{
    int fd = recvctrl_fd;
    uint8_t buffer[256];
    uint8_t header[2];
    block_readpipe(fd, (void *)header, sizeof(header));
    int type = header[0];
    int len = header[1];
    block_readpipe(fd, buffer, len);

    switch (type) {
        case 'S':
            return start_socket((struct request_start *)buffer, result);
        case 'B':
            return bind_socket((struct request_bind *)buffer, result);
        case 'L':
            return listen_socket((struct request_listen *)buffer, result);
        case 'K':
            return close_socket((struct request_close *)buffer, result);
        case 'O':
            return open_socket((struct request_open *)buffer, result);;
        case 'X':
            result->opaque = 0;
            result->ud = 0;
            result->id = 0;
            result->data = nullptr;
            return SOCKET_EXIT;
        case 'D':
            printf("*****************send data*******************\n");
            return send_socket((struct request_send *)buffer, result, PRIORITY_HIGH);
        case 'P':
            break;
        case 'A':
            break;
        case 'C':
            break;
        case 'T':
            setopt_socket((struct request_setopt *)buffer);
            return -1;
        case 'U':
            break;
        default:
            fprintf(stderr, "socket-server: unknown ctrl %c.\n", type);
            break;
    }
    return -1;
}
开发者ID:apppur,项目名称:canna,代码行数:47,代码来源:socket_server.cpp

示例9: http_do_request

DWORD WINAPI http_do_request(void *lPtr)
{
	socket_conn* conn = (socket_conn*)lPtr;
	if(conn == 0)
		return 0;

	printf("[%08x]new connection\n", GetCurrentThreadId());
	while(1)
	{
		int keepalive = 0;
		dynamic_object * req = dynamic_create();
		if(http_read_request(conn, req) == 0)
		{
			dynamic_delete(req);
			break;
		}
		char* path = dynamic_get_string(dynamic_map_find(req, "PATH"));
		char* method = dynamic_get_string(dynamic_map_find(req, "METHOD"));
		char* connection = dynamic_get_string(dynamic_map_find(req, HTTP_HEADER_CONNECTION));
		if(connection && strcmp(connection, "keep-alive")==0)
			keepalive = 1;
		printf("[%08x]%s %s\n", GetCurrentThreadId(), method, path);

		if(strcmp(path, "/hello") == 0)
		{
			char* html = "<html><body>Hello World!</body></html>";
			int htmllen = strlen(html);
			dynamic_object * res = dynamic_create();
			dynamic_string_printf(dynamic_map_insert(res, HTTP_HEADER_CONTENT_LENGTH), "%d", htmllen);
			dynamic_set_string(dynamic_map_insert(res, HTTP_HEADER_CONTENT_TYPE), "text/html");

			http_send_response(conn, 200, res);
			write_socket(conn, html, htmllen, -1);
			dynamic_delete(res);
		}else
		{
			http_send_file(conn, req);
		}
		dynamic_delete(req);
		if(keepalive == 0)
			break;
	}

	close_socket(conn);
	printf("[%08x]close connection\n", GetCurrentThreadId());
	return 0;
}
开发者ID:crazyyao0,项目名称:codearchive,代码行数:47,代码来源:http.cpp

示例10: new_connection_socket

void new_connection_socket(int soc_ec, s_socket *tc, int ssl)
{
    int nc, soc_tmp;
    struct sockaddr_in adrC_tmp;

    TRACE(L_DEBUG, "server: connection server in progress (socket) ...");
    soc_tmp = bor_accept_in (soc_ec, &adrC_tmp);
    if (soc_tmp < 0) {
        return;
    }

    /* Search free space in tc[].soc */
    for (nc = 0; nc < MAXCLI; nc++)
        if (tc[nc].soc == -1) break;

    if (nc < MAXCLI) {
        init_socket(&tc[nc]);

        tc[nc].soc = soc_tmp;
        memcpy (&tc[nc].adrC, &adrC_tmp, sizeof(struct sockaddr_in));
        TRACE(L_VERBOSE, "server [%d]: established server connection with %s",
              nc, bor_adrtoa_in(&adrC_tmp));

#ifdef HAVE_LIBSSL
        /* Init SSL here
         */
        if ( ssl == 1 ) {
            TRACE(L_DEBUG, "server [%d]: socks5 enable ssl  ...", nc);
            tc[nc].ssl = ssl_neogiciate_server(tc[nc].soc);
            if ( tc[nc].ssl == NULL ) {
                ERROR(L_VERBOSE, "server [%d]: ssl error", nc);
                close_socket(&tc[nc]);
                return;
            }
            TRACE(L_DEBUG, "server [%d]: ssl ok.", nc);
            set_non_blocking(tc[nc].soc);
        }
#endif /* HAVE_LIBSSL */

        //append_log_client(&tc[nc], "%s", bor_adrtoa_in(&adrC_tmp));
        //set_non_blocking(tc[nc].soc);
    } else {
        CLOSE_SOCKET(soc_tmp);
        ERROR (L_NOTICE, "server: %s connection refused : too many clients!",
               bor_adrtoa_in(&adrC_tmp));
    }
}
开发者ID:54Pany,项目名称:sSocks,代码行数:47,代码来源:rcsocks.c

示例11: close_accepted_ssl_socket

/**
 * Closes an accepted SSL server connection and deletes it form the 
 * connection list. 
 * @param ssl_server data for ssl server connection
 * @param ssl data the connection to be deleted
 */
void close_accepted_ssl_socket(ssl_server_connection *ssl_server, ssl_connection *ssl) {
  if (!ssl || !ssl_server)
    return;

  close_socket(ssl->socket);
  
  LOCK(ssl_mutex);

    if (ssl->prev == NULL)
      ssl_server->ssl_conn_list = ssl->next;
    else
      ssl->prev->next = ssl->next;

  END_LOCK;  

  delete_ssl_socket(ssl);
}
开发者ID:bruce2008github,项目名称:monit,代码行数:23,代码来源:ssl.c

示例12: main

int main(int argc, char* argv[]) {
	char* resstr;
	struct LiStreamStatus* li;
	E_COUNTRY c;
	resstr = NULL;
	open_socket("127.0.0.1", 9051);
	tctrl_authenticate("torika");
	c = tctrl_ip_to_country("98.236.50.49");
	if ( c == US ) {
		printf("%s\n", "HURRA DE");
	}
	list_stream_status_init(&li);
	printf("%s\n", li->next->s->target_ip);
	list_stream_status_free(&li);
	close_socket();
	return 0;
}
开发者ID:alexaring,项目名称:libtorctl,代码行数:17,代码来源:torctrl.c

示例13: CTCT_ListenThread

static void*  CTCT_ListenThread( void* argp )
{
    int          connfd;
    socklen_t    servlen;
    char         str[80];
    CTCG_PARMBLK parm;

    // set up the parameters passed via create_thread
    parm = *((CTCG_PARMBLK*) argp);
    free( argp );

    for( ; ; )
    {
        servlen = sizeof(parm.addr);

        // await a connection
        connfd = accept( parm.listenfd,
                         (struct sockaddr *)&parm.addr,
                         &servlen );

        MSGBUF( str, "%s:%d",
                 inet_ntoa( parm.addr.sin_addr ),
                 ntohs( parm.addr.sin_port ) );

        if( strcmp( str, parm.dev->filename ) != 0 )
        {
            WRMSG(HHC00974, "E", SSID_TO_LCSS(parm.dev->ssid), parm.dev->devnum,
                    parm.dev->filename, str);
            close_socket( connfd );
        }
        else
        {
            parm.dev->fd = connfd;
        }

        // Ok, so having done that we're going to loop back to the
        // accept().  This was meant to handle the connection failing
        // at the other end; this end will be ready to accept another
        // connection.  Although this will happen, I'm sure you can
        // see the possibility for bad things to occur (eg if another
        // Hercules tries to connect).  This will also be fixed RSN.
    }

    // UNREACHABLE
}
开发者ID:josejamilena,项目名称:hyperion,代码行数:45,代码来源:ctcadpt.c

示例14: xexit

void
xexit(int exit_value)
    /* exit after having freed memory and removed lock file */
{
    cf_t *f = NULL;

    now = time(NULL);

    /* we save all files now and after having waiting for all
     * job being executed because we might get a SIGKILL
     * if we don't exit quickly */
    save_file(NULL);

#ifdef FCRONDYN
    close_socket();
#endif

    f = file_base;
    while (f != NULL) {
        if (f->cf_running > 0) {
            /* */
            debug("waiting jobs for %s ...", f->cf_user);
            /* */
            wait_all(&f->cf_running);
            save_file(f);
        }
        delete_file(f->cf_user);

        /* delete_file remove the f file from the list :
         * next file to remove is now pointed by file_base. */
        f = file_base;
    }

    remove(pidfile);

    exe_list_destroy(exe_list);
    lavg_list_destroy(lavg_list);
    free_conf();

    Free_safe(orig_tz_envvar);

    explain("Exiting with code %d", exit_value);
    exit(exit_value);

}
开发者ID:colmsjo,项目名称:batches,代码行数:45,代码来源:fcron.c

示例15: terminate_the_thread

MODULE terminate_the_thread (THREAD *thread)
{
    NS_REQUEST
        *next,
        *request;
    USER_DATA
        *next_data,
        *user_data;

    tcb = thread-> tcb;                 /*  Point to thread's context        */

    mem_strfree (&tcb-> ip_value);
    mem_strfree (&tcb-> host_name);

    if (tcb-> handle)
        close_socket (tcb-> handle);

    if (tcb-> query)
        mem_free (tcb-> query);

    /* Free stack of requests                                                */
    request = tcb-> stack.next;
    while ((void *)request != (void *)&tcb-> stack)
      {
        next = request-> next;
        rdns_request_free (request);
        request = next;
      }

    /* Free reply list                                                       */
    user_data = tcb-> reply.next;
    while ((void *)user_data != (void *)&tcb-> reply)
      {
        next_data = user_data-> next;
        mem_free (user_data);
        user_data = next_data;
      }
    if (tcb-> invalid_ns_tab)
        sym_delete_table (tcb-> invalid_ns_tab);

    if (tcb-> rr_result)
        mem_free (tcb-> rr_result);

    the_next_event = terminate_event;
}
开发者ID:INNOAUS,项目名称:gsl,代码行数:45,代码来源:smtrdns.c


注:本文中的close_socket函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。