您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sock_close函数代码示例

51自学网 2021-06-03 08:05:35
  C++
这篇教程C++ sock_close函数代码示例写得很实用,希望能帮到您。

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

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

示例1: send_packet

/* send one packet (heartbeat) */int send_packet(void){	static long sequence;	auto char 	buf[128];	auto int 	length, retval;	#GLOBAL_INIT	{		sequence = 0;	}	/* fill the packet with interesting data (a sequence number) */	sequence++;	sprintf(buf, "SEQ=%ld",sequence);	length = strlen(buf) + 1;	/* send the packet */	retval = udp_send(&sock, buf, length);	if (retval < 0) {		printf("Error sending datagram!  Closing and reopening socket.../n");		if (sequence == 1) {			printf("   (initial ARP request may not have finished)/n");		}		sock_close(&sock);		if(!udp_open(&sock, LOCAL_PORT, resolve(REMOTE_IP), REMOTE_PORT, NULL)) {			printf("udp_open failed!/n");			exit(0);		}	}	tcp_tick(NULL);		return 1;}
开发者ID:jgambox,项目名称:DCRabbit_9,代码行数:34,


示例2: connection_close

void connection_close(connection_t *con){    sock_close(con->sock);    if (con->ip) free(con->ip);    if (con->host) free(con->host);    free(con);}
开发者ID:kitsune-dsu,项目名称:kitsune-icecast,代码行数:7,


示例3: sock_server_create

int sock_server_create(struct sockaddr *addr){	int fd;	int ret;	fd = sock_create();	if(fd < 0) {		return -1;	}	ret = sock_set_reuseaddr(fd);	if(ret < 0) {		goto err_server;	}	ret = sock_bind(fd, addr);	if(ret < 0) {		goto err_server;	}	ret = sock_listen(fd);	if(ret < 0) {		goto err_server;	}	return fd;err_server:	sock_close(fd);	return -1;}
开发者ID:forthewatch,项目名称:xdm,代码行数:32,


示例4: udpServerCreate

SOCKET udpServerCreate (struct in_addr * localip, int port){	SOCKET	fd;	struct sockaddr_in addr;	fd = socket(AF_INET, SOCK_DGRAM, 0);	if (fd == -1) {		return EF_INVALID_SOCKET;	}	memset(&addr, 0, sizeof(struct sockaddr_in));	addr.sin_family = AF_INET;	if (localip != NULL) {		addr.sin_addr = *localip;	}	else {		addr.sin_addr.s_addr = htonl(INADDR_ANY);		}	addr.sin_port = htons(port);	if (bind(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr)) != 0) {		sock_close(fd);		return EF_INVALID_SOCKET;	}	return fd;}
开发者ID:ACEZLY,项目名称:gim,代码行数:29,


示例5: libcfs_sock_accept

intlibcfs_sock_accept (cfs_socket_t **newsockp, cfs_socket_t *sock){        cfs_socket_t   *newsock;        int             rc;        newsock = _MALLOC(sizeof(cfs_socket_t), M_TEMP, M_WAITOK|M_ZERO);        if (!newsock) {                CERROR("Can't allocate cfs_socket./n");                return -ENOMEM;        }        newsock->s_magic = CFS_SOCK_MAGIC;        /*         * thread will sleep in sock_accept by calling of msleep(),          * it can be interrupted because msleep() use PCATCH as argument.         */        rc = -sock_accept(C2B_SOCK(sock), NULL, 0, 0,                           libcfs_sock_upcall, newsock, &C2B_SOCK(newsock));        if (rc) {                if (C2B_SOCK(newsock) != NULL)                         sock_close(C2B_SOCK(newsock));                FREE(newsock, M_TEMP);                if ((sock->s_flags & CFS_SOCK_DOWN) != 0)                        /* shutdown by libcfs_sock_abort_accept(), fake                          * error number for lnet_acceptor() */                        rc = -EAGAIN;                return rc;        }        *newsockp = newsock;        return 0;}
开发者ID:Lezval,项目名称:lustre,代码行数:31,


示例6: node_del_data_event

void node_del_data_event(struct node *node){	int ret;	log_error("%s: del data event for node %d", __func__, node->id);	ret = pthread_spin_trylock(&node->spinlock);	if(ret != 0) {		log_error("%s: del data event get lock failed", __func__);		return;	}	if(node->data_event == NULL) {		log_error("%s: null data_event for node %d, cancel", __func__, node->id);		goto err;	}	shutdown(node->dfd, SHUT_RDWR);	sock_close(node->dfd);	node->dfd = -1;	node->data_conn_state = NODE_DFD_DISCONNECTED;	event_free(node->data_event);	node->data_event = NULL;	pthread_spin_unlock(&node->spinlock);	clean_packet_queue(node->data_q);	node_disconnect(node);	return;err:	pthread_spin_unlock(&node->spinlock);}
开发者ID:forthewatch,项目名称:xdm,代码行数:35,


示例7: Sock_close

int Sock_close(Sock *s){    int res;    if (!s)        return -1;    if(s->flags & IS_MULTICAST) {        if (s->remote_host)            mcast_leave(s->fd,(struct sockaddr *) &(s->remote_stg));        else            mcast_leave(s->fd,(struct sockaddr *) &(s->local_stg));    }#if HAVE_SSL    if(s->flags & IS_SSL)        sock_SSL_close(s->ssl);#endif    res = sock_close(s->fd);    if (s->remote_host) free(s->remote_host);    if (s->local_host) free(s->local_host);    free(s);    return res;}
开发者ID:lidongliangfly,项目名称:Libnemesi-reborn,代码行数:27,


示例8: daemon_endcapture

int daemon_endcapture(pcap_t *fp, pthread_t *threaddata, char *errbuf){struct rpcap_header header;SOCKET sockctrl;	if (threaddata)	{		pthread_cancel(*threaddata);		threaddata= 0;	}	if (fp->rmt_sockdata)	{		sock_close(fp->rmt_sockdata, NULL, 0);		fp->rmt_sockdata= 0;	}	sockctrl= fp->rmt_sockctrl;	pcap_close(fp);	fp= NULL;	rpcap_createhdr( &header, RPCAP_MSG_ENDCAP_REPLY, 0, 0);	if ( sock_send(sockctrl, (char *) &header, sizeof(struct rpcap_header), errbuf, PCAP_ERRBUF_SIZE) == -1)		return -1;		return 0;}
开发者ID:OPEXGroup,项目名称:winpcap,代码行数:28,


示例9: client_disconnect_tcp

/* * Closes the TCP socket for the client (wrapper for sock_close()). */void client_disconnect_tcp(client_t* c){	if(c->connected) {		sock_close(c->tcp_sock);		c->connected = 0;	}}
开发者ID:PKRoma,项目名称:pwnat,代码行数:10,


示例10: sock_destroy

int sock_destroy(SOCKINFO *info, int ShutdownMethod){	int ret = UPNP_E_SUCCESS;	char errorBuffer[ERROR_BUFFER_LEN];	if (info->socket != INVALID_SOCKET) {#ifdef UPNP_ENABLE_OPEN_SSL		if (info->ssl) {			SSL_shutdown(info->ssl);			SSL_free(info->ssl);			info->ssl = NULL;		}#endif		if (shutdown(info->socket, ShutdownMethod) == -1) {			strerror_r(errno, errorBuffer, ERROR_BUFFER_LEN);			UpnpPrintf(UPNP_INFO, HTTP, __FILE__, __LINE__,				   "Error in shutdown: %s/n", errorBuffer);		}		if (sock_close(info->socket) == -1) {			ret = UPNP_E_SOCKET_ERROR;		}		info->socket = INVALID_SOCKET;	}	return ret;}
开发者ID:BelledonneCommunications,项目名称:libupnp,代码行数:26,


示例11: irc_connect

int irc_connect(char *hostname, int port) {    int fd;    int nb;    char *buff;    char ip[IP_STR_LEN];    /* resolve hostname to ip */    nb = sock_dns(hostname, ip);    if (!nb)        return -1;    /* get connected */    fd = sock_connect(ip, port);    if (fd == -1)        return -1;    /* register with server */    buff = "NICK " IRC_NICKNAME "/r/nUSER " IRC_USERNAME " localhost server :"           IRC_REALNAME "/r/n";    nb = send(fd, buff, strlen(buff), 0);    if (nb < 0) {        sock_close(fd);        return -1;    }    pthread_mutex_init(&lock, NULL);    return fd; // persistent connection, return socket descriptor}
开发者ID:IRCBotWars,项目名称:ircii,代码行数:29,


示例12: session_close

/*! */brief	child and parent cleanup (child closes first) * */param	session Contains session information * */return	 0 : success */static gint session_close(Session *session){	g_return_val_if_fail(session != NULL, -1);	if (session->conn_id > 0) {		sock_connect_async_cancel(session->conn_id);		session->conn_id = 0;		debug_print("session (%p): connection cancelled/n", session);	}	session_set_timeout(session, 0);	if (session->io_tag > 0) {		g_source_remove(session->io_tag);		session->io_tag = 0;	}	if (session->sock) {		sock_close(session->sock);		session->sock = NULL;		session->state = SESSION_DISCONNECTED;		debug_print("session (%p): closed/n", session);	}	return 0;}
开发者ID:moreorless,项目名称:claws-mail,代码行数:33,


示例13: main

int main(int argc, char** argv) {	if (argc != 4) {		fprintf(stderr, "%s/n", "required arguments: input file, IP address, port");		exit(-1);	}	sock_desc sock = sock_tcp_init();	sock_connect(sock, argv[2], atoi(argv[3]));	FILE* input = fopen(argv[1], "r");	char* buffer = malloc(BUFFER_SIZE);	size_t size_read = 0;	/* Send all the data from the file */	while ((size_read = fread(buffer, sizeof(char), BUFFER_SIZE, input))) {		sock_send(sock, size_read, buffer);	}	fprintf(stderr, LOG_PRE "%s/n", "file sent, closing socket");	sock_close(sock);	free(buffer);	fclose(input);}
开发者ID:ryanashcraft,项目名称:file-transfer,代码行数:26,


示例14: libcfs_sock_create

static intlibcfs_sock_create (cfs_socket_t **sockp, int *fatal,                    __u32 local_ip, int local_port){        struct sockaddr_in  locaddr;        cfs_socket_t    *sock;        int             option;        int             optlen;        int             rc;        /* All errors are fatal except bind failure if the port is in use */        *fatal = 1;        sock = _MALLOC(sizeof(cfs_socket_t), M_TEMP, M_WAITOK|M_ZERO);        if (!sock) {                CERROR("Can't allocate cfs_socket./n");                return -ENOMEM;        }        *sockp = sock;        sock->s_magic = CFS_SOCK_MAGIC;        rc = -sock_socket(PF_INET, SOCK_STREAM, 0,                           libcfs_sock_upcall, sock, &C2B_SOCK(sock));        if (rc != 0)                 goto out;        option = 1;        optlen = sizeof(option);        rc = -sock_setsockopt(C2B_SOCK(sock), SOL_SOCKET,                               SO_REUSEADDR, &option, optlen);        if (rc != 0)                goto out;        /* can't specify a local port without a local IP */        LASSERT (local_ip == 0 || local_port != 0);        if (local_ip != 0 || local_port != 0) {                bzero (&locaddr, sizeof (locaddr));                locaddr.sin_len = sizeof(struct sockaddr_in);                locaddr.sin_family = AF_INET;                locaddr.sin_port = htons (local_port);                locaddr.sin_addr.s_addr = (local_ip != 0) ? htonl(local_ip) : INADDR_ANY;                rc = -sock_bind(C2B_SOCK(sock), (struct sockaddr *)&locaddr);                if (rc == -EADDRINUSE) {                        CDEBUG(D_NET, "Port %d already in use/n", local_port);                        *fatal = 0;                        goto out;                }                if (rc != 0) {                        CERROR("Error trying to bind to port %d: %d/n",                               local_port, rc);                        goto out;                }        }        return 0;out:        if (C2B_SOCK(sock) != NULL)                 sock_close(C2B_SOCK(sock));        FREE(sock, M_TEMP);        return rc;}
开发者ID:DCteam,项目名称:lustre,代码行数:60,


示例15: lwip_socket

int lwip_socket(int domain, int type, int protocol) {	int s, fd;	// We only support basic internet protocols	if (domain != AF_INET || protocol != 0 || (type != SOCK_STREAM && type != SOCK_DGRAM)) {		errno = EPROTONOSUPPORT;		return -1;	}	// Allocate a new socket for it	s = sock_open();	if (s < 0) {		errno = ENFILE;		return -1;	}	fds[s].type = type;	// Make a VFS socket for it	fd = fs_open_handle(&socketvfs, (void *)(s+1));	if (fd < 0) {		sock_close(s);	}	return fd;}
开发者ID:foreverlikeyou9999,项目名称:kos-ports,代码行数:25,


示例16: sock_open

int sock_open(const char* host, int port){	char szPort[10];	struct addrinfo hints;	struct addrinfo *servinfo, *p;	int rv, sockfd = -1;	sprintf(szPort, "%d", port);	memset( &hints, 0, sizeof(struct addrinfo));	hints.ai_family = AF_UNSPEC;	hints.ai_socktype = SOCK_STREAM;	hints.ai_protocol = IPPROTO_TCP;	rv = getaddrinfo(host, szPort, &hints, &servinfo);	if (rv != 0) {		printf("getaddrinfo failed: %d/n", rv);		return -1;	}	for (p = servinfo; p !=NULL; p = p->ai_next) {		if ((sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) > 0) {			if (connect(sockfd, p->ai_addr, p->ai_addrlen) == 0) {				break;			} else {				sock_close(sockfd);				sockfd = -1;			}		}	}	freeaddrinfo(servinfo);	return sockfd;}
开发者ID:bumptech,项目名称:riack,代码行数:33,


示例17: try_connect_HELO

int try_connect_HELO(const char *hostname){    char dbg_hostname[BIG_BUF];    char dbg_version[BIG_BUF];    char buf[BIG_BUF];    char testme[BIG_BUF];    /* Try the HELO protocal */    if(my_socket != -1)        sock_close(my_socket);    if (sock_open(get_string("mailserver"), get_number("smtp-socket", 25), &my_socket))        return 0;    if (sock_readline(my_socket, buf, sizeof(buf)) == 0)        return 0;    if(!sscanf(buf,"220 %s %s", &dbg_hostname[0], &dbg_version[0]))        return 0;    log_printf(9, "Connected: %s (%s)/n", dbg_hostname, dbg_version);    sock_printf(my_socket, "HELO %s/r/n", hostname);    if(sock_readline(my_socket, buf, sizeof(buf)) == 0)        return 0;    if(!sscanf(buf, "250 %s", testme))        return 0;    return 1;}
开发者ID:icyfork,项目名称:ecartis,代码行数:28,


示例18: riack_connect

int riack_connect(struct RIACK_CLIENT *client, const char* host, int port,		struct RIACK_CONNECTION_OPTIONS* options){	client->sockfd = sock_open(host, port);	if (client->sockfd > 0) {		if (client->host && host != client->host) {			RFREE(client, client->host);		}		if (host != client->host) {			client->host = (char*)RMALLOC(client, strlen(host)+1);			strcpy(client->host, host);		}		client->port = port;		if (options) {			client->options = *options;			if (!sock_set_timeouts(client->sockfd, options->recv_timeout_ms, options->send_timeout_ms)) {				sock_close(client->sockfd);				client->sockfd = -1;				// TODO set last error			}		}		return RIACK_SUCCESS;	}	return RIACK_ERROR_COMMUNICATION;}
开发者ID:fumpierrez,项目名称:riack,代码行数:25,


示例19: libcfs_sock_listen

intlibcfs_sock_listen (cfs_socket_t **sockp,                   __u32 local_ip, int local_port, int backlog){        cfs_socket_t    *sock;        int             fatal;        int             rc;        rc = libcfs_sock_create(&sock, &fatal, local_ip, local_port);        if (rc != 0)  {                if (!fatal)                        CERROR("Can't create socket: port %d already in use/n",                                local_port);                return rc;        }        rc = -sock_listen(C2B_SOCK(sock), backlog);        if (rc == 0) {                *sockp = sock;                return 0;        }        if (C2B_SOCK(sock) != NULL)                 sock_close(C2B_SOCK(sock));        FREE(sock, M_TEMP);        return rc;}
开发者ID:DCteam,项目名称:lustre,代码行数:27,


示例20: sock_connect_wto_bind

sock_t sock_connect_wto_bind (const char *hostname, int port, const char *bnd, int timeout){    sock_t sock;    sock = sock_open (AF_INET, SOCK_STREAM, 0);    if (sock == SOCK_ERROR)        return SOCK_ERROR;    if (bnd)    {        struct sockaddr_in sa;        memset(&sa, 0, sizeof(sa));        sa.sin_family = AF_INET;        if (inet_aton (bnd, &sa.sin_addr) == 0 ||                bind (sock, (struct sockaddr *)&sa, sizeof(sa)) < 0)        {            sock_close (sock);            return SOCK_ERROR;        }    }    if (timeout)    {        sock_set_blocking (sock, 0);        if (sock_try_connection (sock, hostname, port) < 0)        {            int ret = sock_connected (sock, timeout);            if (ret <= 0)            {                sock_close (sock);                return SOCK_ERROR;            }        }        sock_set_blocking(sock, 1);    }    else    {        if (sock_try_connection (sock, hostname, port) < 0)        {            sock_close (sock);            sock = SOCK_ERROR;        }    }    return sock;}
开发者ID:jorisvandesande,项目名称:icecast-kh,代码行数:47,


示例21: connector_stop

int32_t connector_stop(connector_t* con){    if (!con || con->h.fd < 0) return -1;    reactor_unregister(con->r, &con->h);    sock_close(con->h.fd);    con->h.fd = -1;    return 0;}
开发者ID:Zhouxiaoqing,项目名称:gbase,代码行数:8,


示例22: riack_disconnect

int riack_disconnect(struct RIACK_CLIENT *client){	if (client->sockfd > 0) {		sock_close(client->sockfd);		client->sockfd = -1;	}	return RIACK_SUCCESS;}
开发者ID:fumpierrez,项目名称:riack,代码行数:8,


示例23: sock_close

void plain_socket::close(bool free){	if(hSocket != INVALID_SOCKET)	{		sock_close(hSocket);		hSocket = INVALID_SOCKET;	}}
开发者ID:baudy2,项目名称:xmr-stak,代码行数:8,


示例24: openloghost

static void openloghost (void){  struct servent *sp;  struct hostent *hp;  if (logSock)  {    sock_close (logSock);    logSock = NULL;  }  sp = getservbyname ("syslog", "udp");  if (sp)     syslog_port = htons (sp->s_port);  logHost = _inet_addr (syslog_hostName);  if (!logHost)  {    hp = gethostbyname (syslog_hostName);    if (!hp)    {      fprintf (stderr, "syslog: Unknown host `%s'/n", syslog_hostName);      return;    }    logHost = ntohl (*(DWORD*)hp->h_addr);  }  if (!logSock)  {    logSock = malloc (sizeof(udp_Socket));    if (!logSock)    {      perror ("syslog");      return;    }  }  if (!udp_open ((udp_Socket*)logSock, 0, logHost, syslog_port, NULL))  {    errno = errno_s = EHOSTUNREACH;  /* "No route to host" (ARP failed) */    STAT (ipstats.ips_noroute++);    perror ("syslog");    sock_close (logSock);    logSock = NULL;  }}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:46,


示例25: workers_adjust

void workers_adjust (int new_count){    INFO1 ("requested worker count %d", new_count);    while (worker_count != new_count)    {        if (worker_count < new_count)            worker_start ();        else if (worker_count > new_count)            worker_stop ();    }    if (worker_count == 0)    {        logger_commits(0);        sock_close (logger_fd[1]);        sock_close (logger_fd[0]);    }}
开发者ID:kjwierenga,项目名称:icecast-kh,代码行数:17,


示例26: msg_eor_close

/* * Close socket if MSG_EOR specified in flags. */static __inline void msg_eor_close (Socket *socket){  switch (socket->so_type)  {    case SOCK_STREAM:         socket->so_state |= SS_CANTSENDMORE;         sock_close ((sock_type*)socket->tcp_sock);         break;    case SOCK_DGRAM:         socket->so_state |= SS_CANTSENDMORE;         sock_close ((sock_type*)socket->udp_sock);         break;    case SOCK_RAW:         socket->so_state |= SS_CANTSENDMORE;         break;  }}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:20,


示例27: SendMessage

/* * Send the response to the remote machine */void SendMessage(tcp_Socket *tcpSock, unsigned key, char* messages[]){    sock_write(tcpSock, messages[key], strlen(messages[key])+1);    sock_close(tcpSock);    while (tcp_tick(tcpSock) != 0);    return;}
开发者ID:jgambox,项目名称:DCRabbit_10,代码行数:11,


示例28: sock_epoll_wait

int sock_epoll_wait(int timeout) {	int n, i;	time_t epoll_time;	struct epoll_event *cevents;	for( ; ; )    {		n = epoll_wait(ct.efd, ct.events, ct.max_events, timeout);		if(n <= 0) continue;						// check timeout 		epoll_time = time((time_t*)0);		for(i = 0; i <= server.maxfd; i++)		{			struct conn_t *c = &server.conn[i];			if(c->fd &&  (c->fd != server.listen_fd) && (epoll_time > (c->now + SOCK_TIMEOUT)))			{				sock_close(c->fd);			}		}				for (i = 0, cevents = ct.events; i < n; i++, cevents++) 		{				if(cevents->events & (EPOLLHUP | EPOLLERR) && cevents->data.fd != server.listen_fd)			{				sock_close(cevents->data.fd);			}			else if(cevents->events & EPOLLIN && cevents->data.fd == server.listen_fd)			{				http_request_accept(cevents->data.fd);			}			else if(cevents->events & EPOLLIN)			{				http_request_read(cevents->data.fd);			}			else if(cevents->events & EPOLLOUT)			{				http_request_write(cevents->data.fd);			}		}    }}
开发者ID:wsjtangy,项目名称:loongsso,代码行数:45,


示例29: libcfs_sock_release

voidlibcfs_sock_release (cfs_socket_t *sock){        if (C2B_SOCK(sock) != NULL) {                sock_shutdown(C2B_SOCK(sock), 2);                sock_close(C2B_SOCK(sock));        }        FREE(sock, M_TEMP);}
开发者ID:DCteam,项目名称:lustre,代码行数:9,


示例30: free_handle_request_arg

/*! * /brief Free memory assigned for handling request and unitialize socket * functionality. */static void free_handle_request_arg(	/*! [in] Request Message to be freed. */	void *args){	struct mserv_request_t *request = (struct mserv_request_t *)args;	sock_close(request->connfd);	free(request);}
开发者ID:hotgloupi,项目名称:upnp,代码行数:13,



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


C++ sock_errno函数代码示例
C++ sock_alloc_send_skb函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。