-
當前位置:首頁 > 創(chuàng)意學院 > 營銷推廣 > 專題列表 > 正文
chat thit di(chat thit di歌曲)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于chat thit di的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,有小程序、在線網(wǎng)頁版、PC客戶端和批量生成器
官網(wǎng):https://ai.de1919.com。
本文目錄:
linux 聊天程序中的一個錯誤 bad file discriptor
哈哈我也寫過這樣的程序,很有興趣和你討論。不過我寫的是基于NAT穿透的,當然現(xiàn)在只有一個雛形。我大概跟你說一下SOCKET建立鏈接的方法,你應該就能發(fā)現(xiàn)錯誤了。
首先,我們有客戶A客戶B服務器S(這里為了簡單,我們討論內網(wǎng)環(huán)境,外網(wǎng)還有很大的不同)。
首先服務器S建立監(jiān)聽套接字,建立一個總所周知的端口,而客戶AB上線,那么都和服務器建立這個端口建立鏈接(這里會遇到一個問題,如果不keepalive可能會掉線,你可以去查查套接字的選項),服務器記住這兩個客戶的套接字FD,現(xiàn)在就可以通過read write來實現(xiàn)通訊了。
不知道我們的想法是否一樣呢?追問
非常感謝你的回答,,我們的思路真的是一樣的,keepalive的設置是不是只要在accept之后對new_fd添加下面幾行代碼
int keepalive = 1,keepidle = 60, keepinterval = 5,keepcount = 3;
然后分別調用setsockopt()函數(shù)進行設置
我這樣設置以后為什么還是不對呢,可以講講你具體是怎樣做的嗎
你的服務器第二次write失敗我覺得很有可能是你已經(jīng)關閉了對應的fd,要知道當我們調用write()的時候,并不是馬上就發(fā)送的,而是寫入了內核緩沖區(qū),等待緩沖區(qū)滿了或者調用了close才發(fā)送的。
關閉緩沖區(qū)代碼如下,添加下面代碼,connfd就是建立的連接的fd
//在發(fā)送數(shù)據(jù)的時,不執(zhí)行由系統(tǒng)緩沖區(qū)到socket緩沖區(qū)的拷貝int nZero = 0;
setsockopt( connfd, SOL_SOCKET, SO_SNDBUF, ( char * )&nZero, sizeof( nZero ) );
//在接收數(shù)據(jù)時,不執(zhí)行將socket緩沖區(qū)的內容拷貝到系統(tǒng)緩沖區(qū)
setsockopt( connfd, SOL_SOCKET, SO_RCVBUF, ( char * )&nZero, sizeof( int ) );追問
我這樣設置了一下,好像還是不對哎,被這問題困擾好久了,,真心不懂到底是哪的原因。。
追答你把服務器accept后的代碼發(fā)上來看看吧。。
追問代碼有點長,它這邊有字數(shù)限制,而且看上去也不太方便,如果可以的話給留個郵箱唄,我把客戶端和服務端的代碼發(fā)過去,麻煩你給看看,我的QQ:1850269709,謝謝啦
這邊就能傳附件的,就在答題框那。
追問找了半天,,好像是回答問題可以上傳附件和代碼,提問的人找不到上傳的按鈕,,好奇葩的百度。。
追答囧這樣啊好吧。。我的郵箱ltcmailhome@gmail.com ..qq因為電腦不是windows不能用也少上。。
tai wechat ve dien thoai
越南語 tại wechat về diễn thoải 在微信上打電話以上就是關于chat thit di相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
ChatGPT國內能下載嗎(potato chat國內能用嗎)