cost 407 ms
如何將數據寫入標准輸入以供等待標准輸入輸入的單獨線程使用?

[英]How to write data to stdin to be consumed by a separate thread waiting on input from stdin?

我試圖從與主線程不同的線程中從stdin讀取一些數據。 主線程應該能夠通過寫入stdin來與該等待線程進行通信,但是當我運行測試代碼(包含在下面)時,什么都沒有發生,只是消息(測試代碼中的“ do_some_work”)直接打印在終端上而不是從等待線程輸出。 我嘗試了SO上列出的幾種解決 ...

pselect()與accept()在循環中

[英]pselect() with accept() in a loop

我有一個多線程服務器,它通過以下循環生成新線程: 在大多數情況下,這可以按預期工作,但有時pselect()不會觸發。 我用tcpdump檢查了一下,然后知道數據已發送到服務器,所以我認為它與主循環有關。 另外,如果使用gdb運行並在發送數據之前在pselect()上斷開,則ps ...

使用FD_SET進行讀寫集以在C中發送和接收數據

[英]Making read and write sets with FD_SET for sending and receiving data in C

我有一個客戶端和服務器,並且客戶端運行一個select循環以在TCP和UDP連接之間進行多路復用。 我試圖將我的TCP連接文件描述符添加到read和write集,然后使用write集啟動一個消息交換,並使用read集啟動一個消息交換。 我與write集進行的消息通信正常,但與read集卻無法 ...

STDIN阻止激活其他文件描述符

[英]STDIN prevents activating of other file descriptors

編寫以下程序來接收客戶的消息並從鍵盤讀取用戶輸入: 問題是,當我按下鍵盤上的“ enter”鍵並且“ 0”文件描述符被激活時,該程序將永遠不會激活任何其他文件描述符,並且它將鎖定在“ 0”文件描述符上。 如何解決此錯誤? ...

在選擇功能中檢測超時的客戶端

[英]Detecting the timed out client in select function

我想使用select函數來處理不同的文件描述符。 程序啟動時,它必須按照一定的間隔開始向其他客戶端發送數據包。 我的第一個問題是如何在主while循環中使用計時器而不中斷while循環和select函數的功能? 那是因為我需要在計時器運行時接受用戶輸入。 第二個問題是我現在是否不需要 ...

具有select()的Pthread生產者/消費者調用文件I / O

[英]Pthread producer/consumer with select() calls for file I/O

我試圖改善實時計算機視覺程序的捕獲性能,該程序正在開發中,以便使用OpenCV在嵌入式Linux計算機上運行。 我想使用多個線程和一個共享內存緩沖區來分離以下任務:(1)捕獲視頻幀和(2)處理它們(我認為是“生產者/消費者問題”)。 我已經閱讀了pthreads,互斥量變量和條件變量,但不了 ...

使用帶管道的select()

[英]Using select() with pipes

我們的想法是創建一個二進制進程樹,它將信息發送到樹中,然后將值發送回樹中,在信息上升時聚合信息。 我遇到的問題是使用select()來確定何時可以讀取管道。 在我到目前為止所寫的內容中,第一個管道(第一個左子)能夠接收信息並打印出來; 但是第二個管道(第一個右邊的孩子)在收到任何信息之 ...

使用select()監視管道時出現分段錯誤

[英]Segmentation fault when using select() to monitor pipes

我正在做一個項目,該項目的前提是創建一個進程樹,其中父進程通過管道向其兩個子進程中的每個子進程發送字符串的一半(數字),然后,當數字<= 2時,該數字出現並傳遞計數的次數(希望是整數數組的形式,返回到父級。 我仍處於構建此事物的初始階段,並且不斷使用select()陷入困境。 現在 ...

socket select()與非block recv

[英]socket select ()versus non-block recv

我看過一些比較select()和poll()或epoll() ,我看到很多指南討論了帶有多個套接字的select()的實際用法。 但是,我似乎無法找到的是與沒有select()的非阻塞recv()調用的比較。 如果只有1個套接字要讀取,1個套接字要寫入,是否有理由使用select()調用 ...

C select()函數是否已被棄用?

[英]Is C select() function deprecated?

我正在讀一本關於C中網絡編程的書。它是從2004年開始的。在示例代碼中,作者使用select C函數接受來自客戶端的多個連接。 這個功能今天已被棄用嗎? 我看到有不同的方法可以接受多路復用的I / O,比如poll和epoll 。 有什么好處? ...

客戶端select()的替代方案

[英]Alternatives to select() on client side

對於TCP非阻塞套接字連接的客戶端,是否有select()的替代方法? select()主要用於多個連接,但我的客戶端只有一個連接。 結果,我問自己是否有一個替代功能來識別單個插槽上的I / O. 這可能會更快,我不需要所有的fd_set處理。 ...

我遇到了select()的問題

[英]Am experiencing issues with select()

經過多次嘗試,我無法完成select()工作。 我迷路了! 結果我開始了-1 。 我正在按照本指南 。 這些是我正在使用的功能: 這就是我獲取監聽器文件描述符的方式: } ...

* nix和C ++編寫非阻塞套接字服務器

[英]*nix & C++ writing a non-blocking socket server

將阻塞套接字服務器重寫為非阻塞版本時遇到一些問題。 實際上,我什至似乎都無法再連接套接字,我在今天的大部分時間里一直在搜尋,並嘗試在這里和那里找到的不同解決方案,但是它們似乎都無法正常工作...當前我的服務器循環只是保持超時select()調用,不接受任何新的套接字。 客戶端套接字似乎在某種 ...

使用select()函數在C中進行套接字編程

[英]Socket programming in C, using the select() function

根據從該線程獲得的答案,我創建了以下代碼: 服務器啟動時,服務器在if(select(...))語句處被阻塞。 因此,當我先運行服務器,再運行客戶端時,客戶端將連接到服務器(有時,連接客戶端之前,需要花費幾次時間來運行客戶端)。 然后, if(select...))語 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM