posix-select

    0熱度

    2回答

    我遇到一些問題,將我的阻塞套接字服務器重寫爲非阻塞版本。 其實,我似乎連套接字了,我一直在谷歌搜索今天的大部分,並嘗試不同的解決方案,我發現這裏和那裏,但沒有一個似乎正常工作... 目前我的服務器循環只是保持select()調用的時間,沒有接受新的套接字。 客戶端套接字似乎在某種級別上連接,因爲如果我啓動它,它將阻止嘗試寫入,並且如果我關閉了服務器,它會通知該連接已被同級重置。 以下是一個正確的假

    5熱度

    1回答

    我在寫一個使用非阻塞套接字(C/C++)和select的網絡通信程序。該程序非常大,所以我無法上傳源代碼。在一個非常積極的測試環節中,我使用測試代碼頻繁地打開和關閉TCP和UDP。它總是以一端不響應而且CPU使用率超過98或99%爲結果。然後,我使用gdb進行附加。 「bt」顯示以下內容: 0x00007f1b71b59ac3 in __select_nocancel() at ../sysdep

    0熱度

    1回答

    我想使用select函數來處理不同的文件描述符。程序啓動時,必須按照間隔開始向其他客戶端發送數據包。我的第一個問題是我如何在主while循環中使用計時器而不中斷while循環和select函數的功能?這是因爲我需要在計時器運行時接受用戶輸入。 第二個問題是,我不知道,如果我現在需要把發射功能我while循環。當程序進入while循環或者我需要在其他地方使用它時,是否需要編寫send函數? 另外,該

    0熱度

    1回答

    我有一個客戶端和服務器,客戶端運行一個select循環以在TCP和UDP連接之間進行多路複用。我試圖將我的TCP連接文件描述符添加到read和write集合,然後使用write集合啓動一個消息交換,並使用read集合啓動一個消息交換。我的消息與write集溝通正常,但與read集我無法這樣做。 客戶端代碼: char buf[256] = {}; char buf_to_send[256

    2熱度

    2回答

    從我從this thread得到的答案根據,我已經創造了這個: //Server sock_init(); //from SFL, see http://legacy.imatix.com/html/sfl/ timeout = 50000; serv_sock_input[0] = TCP(1234); serv_sock_input[1] = UD

    3熱度

    3回答

    在我使用select()之前,我使文件描述符非阻塞?

    4熱度

    1回答

    我看了poll,epoll和select之間的區別。我不明白什麼時候應該使用select。我沒有看到任何優勢,因爲poll和epoll擁有select所具有的一切,以及更多。

    -2熱度

    1回答

    我正在嘗試編寫一個簡單的聊天程序,其中一個用戶可以連接到主機。兩人應該能夠互相交談(他們可能會打斷對方,但沒關係)。我在select()有困難。下面是代碼: client.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include

    11熱度

    3回答

    我見過幾篇比較select()與poll()或epoll()的文章,我見過很多指南討論了帶有多個套接字的select()的實際用法。 但是,我似乎無法找到的是與沒有select()的非阻塞recv()調用的比較。如果只有1個套接字讀取和1個套接字寫入,是否有任何理由使用select()調用?當沒有可用的數據時,recv()方法可以設置爲不阻止並返回錯誤(WSAEWOULDBLOCK),那麼當您沒有

    0熱度

    1回答

    經過多次嘗試,我無法獲得我的select()工作。我很失落!結果我得到了-1。我正在關注this guide。 listen(sock, MAXQUEUE); build_select_list(sock, connectlist, highsock, socks); readsocks = select(FD_SETSIZE, &socks, (fd_set *) 0, (fd_set *