天天看點

socket的connect函數用法

看源碼,看到這樣一段代碼:

static int connSocketConnect(connection *conn, const char *addr, int port, const char *src_addr,
        ConnectionCallbackFunc connect_handler) {
    int fd = anetTcpNonBlockBestEffortBindConnect(NULL,addr,port,src_addr);
    if (fd == -1) {
        conn->state = CONN_STATE_ERROR;
        conn->last_errno = errno;
        return C_ERR;
    }
 
    conn->fd = fd;
    conn->state = CONN_STATE_CONNECTING;
 
    conn->conn_handler = connect_handler;
    aeCreateFileEvent(server.el, conn->fd, AE_WRITABLE,
            conn->type->ae_handler, conn);
 
    return C_OK;
}
           

在實作逾時connect時候,經常可以這麼多,需要set nonblock socket

繼續閱讀