找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
發表文章前請先閱讀相關版規尊貴會員無限下載附件安全提問(回答) 和 永久尊貴會員 事宜
mgfc2無修波多野結催眠overlordvr
想你灼炎の巫nwjsguardianguardian邪娠娼館無限留年

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]精靈幻想記 第二

[繁]嘆氣的亡靈想隱退

[繁]魔王陛下,RETRY

[繁]最狂輔助職業【話

湖口中山路 開門不看

霏霏黑歷史 做成人平
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 2438|回復: 5
打印上一主題下一主題

[問題][已解決]在關掉thread後,無法使用getline讀取console上的資料[複製鏈接]

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
56
積分
1082 點
潛水值
23930 米
跳轉到指定樓層
樓主
發表於 2021-1-1 11:50 PM|只看該作者|倒序瀏覽
本帖最後由 opchta 於 2021-1-10 11:13 PM 編輯

各位大大好
小弟我在linux 下寫了一支server,
尤於有特殊需求,我需要一個thread專門處理client的訊息,
所以在程式一開始,我做完socket的初始化後,
就開了一個thread等待client連線,並處理連線後client傳來的訊息。

至於主執行緒的部分,我希望使用者可以下一些命令,
然後程式執行相對應的動作。
...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
155
積分
1282 點
潛水值
47985 米
頭香
發表於 2021-1-2 10:49 AM|只看該作者
本帖最後由 tryit244178 於 2021-1-2 12:57 PM 編輯

在第14行加個printf看有沒有抓到輸入的字串。如果有,也許在停止的時候,把TcpServer物件釋放掉了

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
56
積分
1082 點
潛水值
23930 米
3
發表於 2021-1-2 06:20 PM|只看該作者
tryit244178 發表於 2021-1-2 10:49 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

在第14行加個printf看有沒有抓到輸入的字串。如果有,也許在停止的時候,把TcpServer物件釋放 ...

我有做過這件事,在輸入CloseConnection前,輸入什麼,就會輸出什麼,
例如,輸入「yo~」,在螢幕上就會輸出「yo~」。

但輸出CloseConnection後,會先輸出「CloseConnection」這個字串,
接著就一直輸出空字串,
我打什麼都無法結束輸出空字串,...
瀏覽完整內容,請先 註冊登入會員

點評

tryit244178 只是想看伺服器有關閉嗎。只能等高手解答了  發表於 2021-1-4 09:51 AM
opchta close的回傳值都是0,但我出現「accept connection failed!: Bad file descriptor」的訊息,好像是在thread中的accept被關掉出現的,和這有關嗎?  發表於 2021-1-3 10:35 AM
opchta 這個我倒沒注意吔,我看一下  發表於 2021-1-3 09:33 AM
tryit244178 你close的返回值是0嗎?  發表於 2021-1-3 12:45 AM

使用道具檢舉

Rank: 2Rank: 2

帖子
476
積分
967 點
潛水值
33329 米
4
發表於 2021-1-5 10:02 PM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
本帖最後由 baepi 於 2021-1-5 10:04 PM 編輯

小弟電腦是Win10(不知道是不是這原因)
在稍作修改大大的程式碼之後,都是小修改...好比
1.刪掉你們有但是我們沒有的.H檔
2.你的初始化沒有
  1. WSAData wsaData;
  2.         WORD version = MAKEWORD(2, 2); // 版本
  3.         int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); // 成功回傳 0
  4.         if (iResult != 0) {
  5.                 // 初始化Winsock 失敗
  6.                 return false;
  7.         }
複製代碼
我們沒有這段根本不可能初始化成功
3.你們的中斷使用close.....我們是使用closesocket

總之能夠正常運行之後,我執行沒有發生大大所說的問題(CloseConnection太長了...所以我自己把它改成A了)
還是說我誤會了大大的意思??

...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊

點評

opchta 謝謝大大的幫忙,不過應該不是喔,因為linux的sockect範例都沒有用那個  發表於 2021-1-10 11:09 PM

使用道具檢舉

Rank: 2Rank: 2

帖子
1050
積分
617 點
潛水值
27400 米
5
發表於 2021-1-8 09:25 AM|只看該作者
本帖最後由 cockroachrun 於 2021-1-8 09:29 AM 編輯

你把stdin 的file descriptors close 了阿. 當然讀不到東西.
你的 int mClientFd  初值為0 . 如果他沒有被改過. (沒有client 連上). 然後你的StopListen()
close(mClientFd);  FD = 0 剛好是 stdin 的 file descriptors . 就讀不到東西
附帶一提
FD = 0   stdin
FD = 1   stdout
FD = 2   stderr
...
瀏覽完整內容,請先 註冊登入會員





所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
56
積分
1082 點
潛水值
23930 米
6
發表於 2021-1-10 11:12 PM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
cockroachrun 發表於 2021-1-8 09:25 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

你把stdin 的file descriptors close 了阿. 當然讀不到東西.
你的 int mClientFd  初值為0 . 如果他沒有被 ...

喔喔~~~~瞭解
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部