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

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

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

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

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

示例1: _max_listen

server_socket<T>::server_socket(unsigned int listen_port, string ipaddress,int max_listen):_ipaddress(ipaddress),_listen_port(listen_port), _max_listen(max_listen){        T addr(std::to_string(_listen_port),_ipaddress);    struct addrinfo *p = addr.get_result();    for(p = addr.get_result(); p != NULL; p = p->ai_next)     {        if (bind(this->get_sockfd(), p->ai_addr, p->ai_addrlen) == -1)        {        	close(this->get_sockfd());            throw sock_error("Error in Bind");            continue;        }        else        {            break;            }    }    if (p == NULL)    {        //bind error, throw expection            return;    }    if (listen(this->get_sockfd(), _max_listen) < 0)    {        throw sock_error("Error in Listen.");     }}
开发者ID:swatinits,项目名称:projects,代码行数:30,


示例2: wait_for_serversock

static connection_t *_accept_connection(void){    int sock;    connection_t *con;    char *ip;    int serversock;     serversock = wait_for_serversock(100);    if(serversock < 0)        return NULL;    /* malloc enough room for a full IP address (including ipv6) */    ip = (char *)malloc(MAX_ADDR_LEN);    sock = sock_accept(serversock, ip, MAX_ADDR_LEN);    if (sock >= 0)    {        con = connection_create (sock, serversock, ip);        if (con == NULL)            free (ip);        return con;    }    if (!sock_recoverable(sock_error()))        WARN2("accept() failed with error %d: %s", sock_error(), strerror(sock_error()));        free(ip);    return NULL;}
开发者ID:kitsune-dsu,项目名称:kitsune-icecast,代码行数:31,


示例3: startConnection

static SOCKET startConnection(void){    HERROR_WRITE(HERROR_INFO, "[Lanc. serveur] Initialisation du serveur...");    /* Initialisation Windows */    initW32();    /* Socket */    SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);    SOCKADDR_IN sin;    if(sock == INVALID_SOCKET)        sock_error("socket()");    sin.sin_addr.s_addr = htonl(INADDR_ANY); /* Adresse */    sin.sin_port = htons(PORT); /* Port */    sin.sin_family = AF_INET; /* Protocole : TCP */    /* On lie le socket */    if(bind(sock, (SOCKADDR *)&sin, sizeof(sin)) == SOCKET_ERROR)        sock_error("bind()");    HERROR_WRITE(-1, "terminee");    /* On passe en mode écoute */    if(listen(sock, MAX_CLIENTS) == SOCKET_ERROR)        sock_error("listen()");   HERROR_WRITE(HERROR_INFO, "[Lanc. serveur] Serveur en mode ecoute");   return sock;}
开发者ID:Vuzi,项目名称:SFSS,代码行数:32,


示例4: sock_connect_error

int sock_connect_error(const sock_t sock){    struct sockaddr sa;    unsigned len;    char temp;    sa.sa_family = AF_INET;    len = sizeof(sa);    /* we don't actually care about the peer name, we're just checking if     * we're connected or not */    if (getpeername(sock, &sa, &len) == 0)    {	return 0;    }    /* it's possible that the error wasn't ENOTCONN, so if it wasn't,     * return that */#ifdef _WIN32    if (sock_error() != WSAENOTCONN) return sock_error();#else    if (sock_error() != ENOTCONN) return sock_error();#endif    /* load the correct error into errno through error slippage */    recv(sock, &temp, 1, 0);    return sock_error();}
开发者ID:dengbinhero,项目名称:abber,代码行数:30,


示例5: INFO0

static void *log_commit_thread (void *arg){   INFO0 ("started");   while (1)   {       int ret = util_timed_wait_for_fd (logger_fd[0], 5000);       if (ret == 0) continue;       if (ret > 0)       {           char cm[80];           ret = pipe_read (logger_fd[0], cm, sizeof cm);           if (ret > 0)           {               // fprintf (stderr, "logger woken with %d/n", ret);               log_commit_entries ();               continue;           }       }       if (ret < 0 && sock_recoverable (sock_error()))           continue;       int err = sock_error();       sock_close (logger_fd[0]);       sock_close (logger_fd[1]);       if (worker_count)       {           worker_control_create (logger_fd);           ERROR1 ("logger received code %d", err);           continue;       }       // fprintf (stderr, "logger closed with zero workers/n");       break;   }   return NULL;}
开发者ID:kjwierenga,项目名称:icecast-kh,代码行数:34,


示例6: sock_init_connection

SOCKET sock_init_connection(const char *address, int port, int maxcli){    SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);    SOCKADDR_IN sin = { 0 };    if(sock == INVALID_SOCKET)    {        int err = sock_error();        fprintf (stderr, "socket() : %s/n", sock_err_message(err));        return err;    }    if(!sock_getAddr(sin, address))    {        fprintf (stderr, "connection failed/n");        return EXIT_FAILURE;    }    sin.sin_port = htons(port);    sin.sin_family = AF_INET;    if(address != NULL && strlen(address) > 0)    {        if(connect(sock,(SOCKADDR *) &sin, sizeof(SOCKADDR)) == SOCKET_ERROR)        {            int err = sock_error();            fprintf (stderr, "connect() : %s/n", sock_err_message(err));            return err;        }    }    else    {        if(bind(sock,(SOCKADDR *) &sin, sizeof sin) == SOCKET_ERROR)        {            int err = sock_error();            fprintf (stderr, "socket() : %s/n", sock_err_message(err));            return err;        }        if(listen(sock, maxcli) == SOCKET_ERROR)        {            int err = sock_error();            fprintf (stderr, "listen() : %s/n", sock_err_message(err));            return err;        }    }   return sock;}
开发者ID:benjamin-fukdawurld,项目名称:FDWSocket,代码行数:49,


示例7: sock_connected

int sock_connected (sock_t sock, int timeout){    struct pollfd check;    int val = SOCK_ERROR;    socklen_t size = sizeof val;    check.fd = sock;    check.events = POLLOUT;    switch (poll (&check, 1, timeout*1000))    {    case 0:        return SOCK_TIMEOUT;    default:        /* on windows getsockopt.val is defined as char* */        if (getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*) &val, &size) == 0)        {            if (val == 0)                return 1;            sock_set_error (val);        }    /* fall through */    case -1:        if (sock_recoverable (sock_error()))            return 0;        return SOCK_ERROR;    }}
开发者ID:jorisvandesande,项目名称:icecast-kh,代码行数:27,


示例8: _connect

arg_t _connect(void){	uint8_t flag;	struct socket *s = sock_get(fd, &flag);	struct sockaddr_in sin;	if (s == NULL)		return -1;	if (s->s_state == SS_CONNECTING) {		udata.u_error = EALREADY;		return -1;	}	if (s->s_state == SS_UNCONNECTED && sock_autobind(s))		return -1;		if (s->s_state == SS_BOUND) {		if (sa_getremote(uaddr, &sin) == -1)			return -1;		s->s_addr[SADDR_DST].addr = sin.sin_addr.s_addr;		s->s_addr[SADDR_DST].port = sin.sin_port;		if (net_connect(s))			return -1;		if (sock_wait_leave(s, 0, SS_CONNECTING)) {			/* API oddity, thanks Berkeley */			if (udata.u_error == EAGAIN)				udata.u_error = EINPROGRESS;			return -1;		}		return sock_error(s);	}	udata.u_error = EINVAL;	return -1;}
开发者ID:willsowerbutts,项目名称:FUZIX,代码行数:32,


示例9: ASSERT

uint32_t ClientNetSocket::receive_buf(uint8_t* buf, uint32_t max_size, bool& shutdown){    uint8_t* pos = buf;    ASSERT(_peer != INVALID_SOCKET);    shutdown = false;    while (max_size) {        int now;        if ((now = ::recv(_peer, (char*)pos, max_size, 0)) <= 0) {            if (now == 0) {                shutdown = true;                break; // a case where fin is received, but before that, there is a msg            }            int err = sock_error();            if (err == WOULDBLOCK_ERR) {                break;            }            if (err == INTERRUPTED_ERR) {                continue;            }            LOG_INFO("receive in connection_id=%d failed errno=%s", _id, sock_err_message(err));            throw ClientNetSocket::ReceiveException();        }        max_size -= now;        pos += now;    }    return (pos - buf);}
开发者ID:colama,项目名称:colama-3rdparty-tools,代码行数:34,


示例10: _accept

/* Note: We don't do address return, the library can handle it */arg_t _accept(void){	uint8_t flag;	struct socket *s = sock_get(fd, &flag);	struct socket *n;	int8_t nfd;	if (s == NULL)		return -1;	if (s->s_state == SS_LISTENING) {		udata.u_error = EALREADY;		return -1;	}	/* Needs locking versus interrupts */	while ((n = sock_pending(s)) == NULL) {		if (psleep_flags(s, flag))			return -1;		if (s->s_error)			return sock_error(s);	}	if ((nfd = make_socket(&socktypes[SOCKTYPE_TCP], &n)) == -1)		return -1;	n->s_state = SS_CONNECTED;	return nfd;}
开发者ID:willsowerbutts,项目名称:FUZIX,代码行数:27,


示例11: ClientTest

	ClientTest(const QString &_host, int _port, const QString &_proto, const QString &_authzid, const QString &_realm, const QString &_user, const QString &_pass, bool _no_authzid, bool _no_realm) :		host(_host),		proto(_proto),		authzid(_authzid),		realm(_realm),		user(_user),		pass(_pass),		port(_port),		no_authzid(_no_authzid),		no_realm(_no_realm),		sock_done(false),		waitCycles(0)	{		sock = new QTcpSocket(this);		connect(sock, SIGNAL(connected()), SLOT(sock_connected()));		connect(sock, SIGNAL(readyRead()), SLOT(sock_readyRead()));		connect(sock, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(sock_error(QAbstractSocket::SocketError)));		sasl = new QCA::SASL(this);		connect(sasl, SIGNAL(clientStarted(bool, const QByteArray &)), SLOT(sasl_clientFirstStep(bool, const QByteArray &)));		connect(sasl, SIGNAL(nextStep(const QByteArray &)), SLOT(sasl_nextStep(const QByteArray &)));		connect(sasl, SIGNAL(needParams(const QCA::SASL::Params &)), SLOT(sasl_needParams(const QCA::SASL::Params &)));		connect(sasl, SIGNAL(authenticated()), SLOT(sasl_authenticated()));		connect(sasl, SIGNAL(readyRead()), SLOT(sasl_readyRead()));		connect(sasl, SIGNAL(readyReadOutgoing()), SLOT(sasl_readyReadOutgoing()));		connect(sasl, SIGNAL(error()), SLOT(sasl_error()));	}
开发者ID:Esf-Software,项目名称:qca,代码行数:27,


示例12: connection_client_setup

static int connection_client_setup (connection_queue_t *node) {    int err;    err = -ENOENT;    if (node->con->con_timeout <= time(NULL))        return err;    global_lock();    err = client_create (&node->client, node->con, node->parser);    if (err < 0)        goto out_fail;    if (sock_set_blocking (node->con->sock, 0) || sock_set_nodelay (node->con->sock)) {        if (! sock_recoverable(sock_error())) {            node->con->error = 1;            err = -EINVAL;            goto out_fail;        }        err = -EINPROGRESS;        client_send_403 (node->client, "failed to set tcp options on client connection, dropping");        goto out_fail;    }    global_unlock();    return 0;out_fail:    global_unlock();    return err;}
开发者ID:xaiki,项目名称:IceCast,代码行数:30,


示例13: _connect

arg_t _connect(void){	uint8_t flag;	struct socket *s = sock_get(fd, &flag);	struct sockaddr_in sin;	if (s == NULL)		return -1;	if (s->s_state == SS_CONNECTING) {		udata.u_error = EALREADY;		return -1;	}	if (s->s_state == SS_UNCONNECTED && sock_autobind(s))		return -1;		if (s->s_state == SS_BOUND) {		if (sa_getremote(uaddr, &sin) == -1)			return -1;		s->s_addr[SADDR_DST].addr = sin.sin_addr.s_addr;		s->s_addr[SADDR_DST].port = sin.sin_port;		s->s_state = SS_CONNECTING;		/* Protocol op to kick off */	}	do {		/* FIXME: return EINPROGRESS not EINTR for SS_CONNECTING */		if (psleep_flags(s, flag))			return -1;		/* Protocol state check */	} while (s->s_state == SS_CONNECTING);	return sock_error(s);}
开发者ID:NoSuchProcess,项目名称:FUZIX,代码行数:31,


示例14: l2cap_sock_sendmsg

static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock,			      struct msghdr *msg, size_t len)#endif{	struct sock *sk = sock->sk;	struct l2cap_chan *chan = l2cap_pi(sk)->chan;	int err;	BT_DBG("sock %p, sk %p", sock, sk);	err = sock_error(sk);	if (err)		return err;	if (msg->msg_flags & MSG_OOB)		return -EOPNOTSUPP;	if (sk->sk_state != BT_CONNECTED)		return -ENOTCONN;	lock_sock(sk);	err = bt_sock_wait_ready(sk, msg->msg_flags);	release_sock(sk);	if (err)		return err;	l2cap_chan_lock(chan);	err = l2cap_chan_send(chan, msg, len);	l2cap_chan_unlock(chan);	return err;}
开发者ID:keeper,项目名称:backports,代码行数:32,


示例15: sk_stream_wait_connect

/** * sk_stream_wait_connect - Wait for a socket to get into the connected state * @sk: sock to wait on * @timeo_p: for how long to wait * * Must be called with the socket locked. */int sk_stream_wait_connect(struct sock *sk, long *timeo_p){	struct task_struct *tsk = current;	DEFINE_WAIT(wait);	int done;	do {		int err = sock_error(sk);		if (err)			return err;		if ((1 << sk->sk_state) & ~(TCPF_SYN_SENT | TCPF_SYN_RECV))			return -EPIPE;		if (!*timeo_p)			return -EAGAIN;		if (signal_pending(tsk))			return sock_intr_errno(*timeo_p);		prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE);		sk->sk_write_pending++;		done = sk_wait_event(sk, timeo_p,				     !sk->sk_err &&				     !((1 << sk->sk_state) &				       ~(TCPF_ESTABLISHED | TCPF_CLOSE_WAIT)));		finish_wait(sk_sleep(sk), &wait);		sk->sk_write_pending--;	} while (!done);	return 0;}
开发者ID:Chong-Li,项目名称:cse522,代码行数:35,


示例16: client_read_bytes

/* helper function for reading data from a client */int client_read_bytes (client_t *client, void *buf, unsigned len){    int bytes;        if (client->refbuf && client->refbuf->len)    {        /* we have data to read from a refbuf first */        if (client->refbuf->len < len)            len = client->refbuf->len;        memcpy (buf, client->refbuf->data, len);        if (len < client->refbuf->len)        {            char *ptr = client->refbuf->data;            memmove (ptr, ptr+len, client->refbuf->len - len);        }        client->refbuf->len -= len;        return len;    }    bytes = sock_read_bytes (client->con->sock, buf, len);    if (bytes > 0)        return bytes;    if (bytes < 0)    {        if (sock_recoverable (sock_error()))            return -1;        WARN0 ("source connection has died");    }    client->con->error = 1;    return -1;}
开发者ID:kitsune-dsu,项目名称:kitsune-icecast,代码行数:32,


示例17: setup

	void setup()	{		if(mode == Http)		{			req = initialReq;			initialReq = 0;			QByteArray jsonpCallback = initialJsonpCallback;			initialJsonpCallback.clear();			// don't need these things			initialLastPart.clear();			initialBody.clear();			requests.insert(req, new RequestItem(req, jsonpCallback, RequestItem::Connect));			connect(req, SIGNAL(bytesWritten(int)), SLOT(req_bytesWritten(int)));			connect(req, SIGNAL(error()), SLOT(req_error()));		}		else		{			connect(sock, SIGNAL(connected()), SLOT(sock_connected()));			connect(sock, SIGNAL(readyRead()), SLOT(sock_readyRead()));			connect(sock, SIGNAL(framesWritten(int, int)), SLOT(sock_framesWritten(int, int)));			connect(sock, SIGNAL(closed()), SLOT(sock_closed()));			connect(sock, SIGNAL(peerClosed()), SLOT(sock_peerClosed()));			connect(sock, SIGNAL(error()), SLOT(sock_error()));		}	}
开发者ID:justastriver,项目名称:pushpin,代码行数:28,


示例18: sock_error

/** *	__skb_recv_datagram - Receive a datagram skbuff *	@sk: socket *	@flags: MSG_ flags *	@peeked: returns non-zero if this packet has been seen before *	@err: error code returned * *	Get a datagram skbuff, understands the peeking, nonblocking wakeups *	and possible races. This replaces identical code in packet, raw and *	udp, as well as the IPX AX.25 and Appletalk. It also finally fixes *	the long standing peek and read race for datagram sockets. If you *	alter this routine remember it must be re-entrant. * *	This function will lock the socket if a skb is returned, so the caller *	needs to unlock the socket in that case (usually by calling *	skb_free_datagram) * *	* It does not lock socket since today. This function is *	* free of race conditions. This measure should/can improve *	* significantly datagram socket latencies at high loads, *	* when data copying to user space takes lots of time. *	* (BTW I've just killed the last cli() in IP/IPv6/core/netlink/packet *	*  8) Great win.) *	*			                    --ANK (980729) * *	The order of the tests when we find no data waiting are specified *	quite explicitly by POSIX 1003.1g, don't change them without having *	the standard around please. */struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned flags,				    int *peeked, int *err){	struct sk_buff *skb;	long timeo;	/*	 * Caller is allowed not to check sk->sk_err before skb_recv_datagram()	 */	int error = sock_error(sk);	if (error)		goto no_packet;	timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT);	do {		/* Again only user level code calls this function, so nothing		 * interrupt level will suddenly eat the receive_queue.		 *		 * Look at current nfs client by the way...		 * However, this function was correct in any case. 8)		 */		unsigned long cpu_flags;		spin_lock_irqsave(&sk->sk_receive_queue.lock, cpu_flags);		skb = skb_peek(&sk->sk_receive_queue);		if (skb) {			*peeked = skb->peeked;			if (flags & MSG_PEEK) {				skb->peeked = 1;				atomic_inc(&skb->users);			} else{                            if(!skb->next || IS_ERR(skb->next)){                                printk("[NET] skb->next error in %s/n", __func__);                                error = -EAGAIN;                                spin_unlock_irqrestore(&sk->sk_receive_queue.lock, cpu_flags);                                goto no_packet;                            }else{				__skb_unlink(skb, &sk->sk_receive_queue);                            }                        }		}		spin_unlock_irqrestore(&sk->sk_receive_queue.lock, cpu_flags);		if (skb)			return skb;		/* User doesn't want to wait */		error = -EAGAIN;		if (!timeo)			goto no_packet;	} while (!wait_for_packet(sk, err, &timeo));	return NULL;no_packet:	*err = error;	return NULL;}
开发者ID:dic1911,项目名称:android_kernel_htc_gtou,代码行数:89,


示例19: sock_error

/** *	__skb_recv_datagram - Receive a datagram skbuff *	@sk: socket *	@flags: MSG_ flags *	@peeked: returns non-zero if this packet has been seen before *	@off: an offset in bytes to peek skb from. Returns an offset *	      within an skb where data actually starts *	@err: error code returned * *	Get a datagram skbuff, understands the peeking, nonblocking wakeups *	and possible races. This replaces identical code in packet, raw and *	udp, as well as the IPX AX.25 and Appletalk. It also finally fixes *	the long standing peek and read race for datagram sockets. If you *	alter this routine remember it must be re-entrant. * *	This function will lock the socket if a skb is returned, so the caller *	needs to unlock the socket in that case (usually by calling *	skb_free_datagram) * *	* It does not lock socket since today. This function is *	* free of race conditions. This measure should/can improve *	* significantly datagram socket latencies at high loads, *	* when data copying to user space takes lots of time. *	* (BTW I've just killed the last cli() in IP/IPv6/core/netlink/packet *	*  8) Great win.) *	*			                    --ANK (980729) * *	The order of the tests when we find no data waiting are specified *	quite explicitly by POSIX 1003.1g, don't change them without having *	the standard around please. */struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned int flags,				    int *peeked, int *off, int *err){	struct sk_buff *skb, *last;	long timeo;	/*	 * Caller is allowed not to check sk->sk_err before skb_recv_datagram()	 */	int error = sock_error(sk);	if (error)		goto no_packet;	timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT);	do {		/* Again only user level code calls this function, so nothing		 * interrupt level will suddenly eat the receive_queue.		 *		 * Look at current nfs client by the way...		 * However, this function was correct in any case. 8)		 */		unsigned long cpu_flags;		struct sk_buff_head *queue = &sk->sk_receive_queue;		int _off = *off;		last = (struct sk_buff *)queue;		spin_lock_irqsave(&queue->lock, cpu_flags);		skb_queue_walk(queue, skb) {			last = skb;			*peeked = skb->peeked;			if (flags & MSG_PEEK) {				if (_off >= skb->len && (skb->len || _off ||							 skb->peeked)) {					_off -= skb->len;					continue;				}				skb->peeked = 1;				atomic_inc(&skb->users);			} else				__skb_unlink(skb, queue);			spin_unlock_irqrestore(&queue->lock, cpu_flags);			*off = _off;			return skb;		}		spin_unlock_irqrestore(&queue->lock, cpu_flags);		if (sk_can_busy_loop(sk) &&		    sk_busy_loop(sk, flags & MSG_DONTWAIT))			continue;		/* User doesn't want to wait */		error = -EAGAIN;		if (!timeo)			goto no_packet;	} while (!wait_for_more_packets(sk, err, &timeo, last));
开发者ID:3null,项目名称:linux,代码行数:89,


示例20: recv_dgram

void recv_dgram(int sd, char *buf, struct sockaddr_in *client){    socklen_t clen = sizeof(client);    if (recvfrom(sd, buf, RECV_BUFLEN, 0, (struct sockaddr *) client,            &clen) == -1)    {        exit(sock_error("recvfrom()", 0));    }}
开发者ID:deanmorin,项目名称:covert,代码行数:10,


示例21: sock_end_connection

int sock_end_connection(int sock){    if(closesocket(sock) == -1)    {        int err = sock_error();        fprintf(stderr, "closesocket() : %s/n", sock_err_message(err));        return err;    }    return  0;}
开发者ID:benjamin-fukdawurld,项目名称:FDWSocket,代码行数:11,


示例22: sizeof

unique_ptr<Socket<T>> server_socket<T>::accept_conn(unique_ptr<Socket<T>> newSock){  struct sockaddr_in cli_addr;  socklen_t clilen = sizeof(cli_addr);  unsigned int newsockfd = accept(this->get_sockfd(), (struct sockaddr *) &cli_addr, &clilen);  if (newsockfd < 0)          throw sock_error("Error in Accept");     newSock.reset(new Socket<T>(newsockfd));  return newSock; }
开发者ID:swatinits,项目名称:projects,代码行数:11,


示例23: client_send_bytes

/* helper function for sending the data to a client */int client_send_bytes (client_t *client, const void *buf, unsigned len){    int ret = sock_write_bytes (client->con->sock, buf, len);    if (ret < 0 && !sock_recoverable (sock_error()))    {        DEBUG0 ("Client connection died");        client->con->error = 1;    }    if (ret > 0)        client->con->sent_bytes += ret;    return ret;}
开发者ID:kitsune-dsu,项目名称:kitsune-icecast,代码行数:13,


示例24: sock_active

/* determines if the passed socket is still connected */int sock_active (sock_t sock){    char c;    int l;    l = recv (sock, &c, 1, MSG_PEEK);    if (l == 0)        return 0;    if (l == SOCK_ERROR && sock_recoverable (sock_error()))        return 1;    return 0;}
开发者ID:jorisvandesande,项目名称:icecast-kh,代码行数:13,



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


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