static result_t __non_block_connect_process(void *sock)
{
tcp_sock_t *tcp_sock = (tcp_sock_t *)sock;
result_t rc = E_OK;
struct sockaddr_in addr;
LOGT(C_TCP_THREAD_TAG, "Enter");
iport_to_sockaddr_in(&tcp_sock->dst_iport, &addr);
if (connect(tcp_sock->sockfd, (struct sockaddr*)&addr, sizeof(struct sockaddr)) < 0) {
/* TBD */
#if !defined(MYS_WINDOWS_PLATFORM)
if (EISCONN == errno) {
LOGD(C_TCP_THREAD_TAG, "non_block connected");
if (tcp_sock->on_connected) {
tcp_sock->on_connected(tcp_sock->connected_arg);
tcp_sock->non_block_connected = TRUE;
}
} else {
LOGD(C_TCP_THREAD_TAG, "non_block not connected");
}
#endif
}
return E_OK;
}
easy way to handle non-block tcp socket
最新推荐文章于 2023-08-15 14:37:00 发布