本文整理汇总了C++中close_socket函数的典型用法代码示例。如果您正苦于以下问题:C++ close_socket函数的具体用法?C++ close_socket怎么用?C++ close_socket使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了close_socket函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: lock
void TransportTCP::close()
{
Callback disconnect_cb;
if (!closed_)
{
{
boost::recursive_mutex::scoped_lock lock(close_mutex_);
if (!closed_)
{
closed_ = true;
ROS_ASSERT(sock_ != ROS_INVALID_SOCKET);
if (poll_set_)
{
poll_set_->delSocket(sock_);
}
::shutdown(sock_, ROS_SOCKETS_SHUT_RDWR);
if ( close_socket(sock_) != 0 )
{
ROS_ERROR("Error closing socket [%d]: [%s]", sock_, last_socket_error_string());
} else
{
ROSCPP_LOG_DEBUG("TCP socket [%d] closed", sock_);
}
sock_ = ROS_INVALID_SOCKET;
disconnect_cb = disconnect_cb_;
disconnect_cb_ = Callback();
read_cb_ = Callback();
write_cb_ = Callback();
accept_cb_ = AcceptCallback();
}
}
}
if (disconnect_cb)
{
disconnect_cb(shared_from_this());
}
}
开发者ID:fqez,项目名称:common,代码行数:45,代码来源:transport_tcp.cpp
示例17: cql_ccm_bridge_exception_t
void cql_ccm_bridge_t::start_connection(const cql_ccm_bridge_configuration_t& settings) {
_socket = ::socket(AF_INET, SOCK_STREAM, 0);
if (_socket == -1)
throw cql_ccm_bridge_exception_t("cannot create socket");
sockaddr_in socket_address;
socket_address.sin_family = AF_INET;
socket_address.sin_port = htons(settings.ssh_port());
socket_address.sin_addr.s_addr = inet_addr(settings.ssh_host().c_str());
int result = connect(_socket, reinterpret_cast<sockaddr *>(&socket_address),
sizeof(socket_address));
if (result == -1) {
close_socket();
throw cql_ccm_bridge_exception_t("cannot connect to remote host");
}
}
开发者ID:WintersLt,项目名称:cpp-driver,代码行数:18,代码来源:cql_ccm_bridge.cpp
示例18: on_new_connection
static int on_new_connection(void *userdata, unsigned int revents){
belle_sip_socket_t child;
struct sockaddr_storage addr;
socklen_t slen=sizeof(addr);
belle_sip_tls_listening_point_t *lp=(belle_sip_tls_listening_point_t*)userdata;
belle_sip_stream_listening_point_t *super=(belle_sip_stream_listening_point_t*)lp;
child=accept(super->server_sock,(struct sockaddr*)&addr,&slen);
if (child==(belle_sip_socket_t)-1){
belle_sip_error("Listening point [%p] accept() failed on TLS server socket: %s",lp,belle_sip_get_socket_error_string());
belle_sip_stream_listening_point_destroy_server_socket(super);
belle_sip_stream_listening_point_setup_server_socket(super,on_new_connection);
return BELLE_SIP_STOP;
}
belle_sip_message("New connection arriving on TLS, not handled !");
close_socket(child);
return BELLE_SIP_CONTINUE;
}
开发者ID:helloiloveit,项目名称:VkxPhoneProject,代码行数:18,代码来源:tls_listeningpoint_polarssl.c
示例19: done_socket
void
done_socket(struct socket *socket)
{
struct socket_weak_ref *ref;
close_socket(socket);
if (socket->connect_info)
done_connection_info(socket);
mem_free_set(&socket->read_buffer, NULL);
mem_free_set(&socket->write_buffer, NULL);
foreach(ref, socket_weak_refs) {
if (ref->socket == socket)
ref->socket = NULL;
}
}
开发者ID:nabetaro,项目名称:elinks,代码行数:18,代码来源:socket.c
示例20: uplink_readable
static void
uplink_readable(struct io_fd *fd) {
static char buffer[MAXLEN];
char *eol;
int pos;
pos = ioset_line_read(fd, buffer, sizeof(buffer));
if (pos <= 0) {
close_socket();
return;
}
if ((eol = strpbrk(buffer, "\r\n")))
*eol = 0;
log_replay(MAIN_LOG, false, buffer);
if (cManager.uplink->state != DISCONNECTED)
parse_line(buffer, 0);
lines_processed++;
}
开发者ID:Cloudxtreme,项目名称:x3,代码行数:18,代码来源:proto-common.c
注:本文中的close_socket函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论