亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 24613299 | 回復(fù): 24613299
打印 上一主題 下一主題

[C++] socket 如何確認(rèn)對端已經(jīng)close [復(fù)制鏈接]

論壇徽章:
5
戌狗
日期:2014-06-09 10:29:10酉雞
日期:2014-12-01 16:05:27處女座
日期:2015-01-07 18:35:262015亞冠之水原三星
日期:2015-06-03 09:26:222015亞冠之布里斯班獅吼
日期:2015-06-15 10:53:54
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-08-19 15:10 |只看該作者 |倒序瀏覽
最近糾結(jié)于兩個小問題,哪位大牛幫忙解答一下,不勝感激
1.客戶端給服務(wù)端發(fā)送消息,一端時間后服務(wù)端執(zhí)行了close操作,請問此時客戶端如何檢測到這一事件? 如果檢測不到,再一次發(fā)送時會觸發(fā)broken pipe信號
2.在linux端進(jìn)行服務(wù)開發(fā)時,一般會用top查看占用的資源,不知各位一般習(xí)慣看哪幾個字段?我一般看cpu、mem、swap。VIRT那個字段有參考必要嗎?

論壇徽章:
154
2022北京冬奧會紀(jì)念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16賽季CBA聯(lián)賽之深圳
日期:2022-11-02 14:02:4515-16賽季CBA聯(lián)賽之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16賽季CBA聯(lián)賽之八一
日期:2023-11-04 19:23:5115-16賽季CBA聯(lián)賽之廣夏
日期:2023-12-13 18:09:34
2 [報告]
發(fā)表于 2016-08-19 15:21 |只看該作者
這個要看網(wǎng)絡(luò)方面的專家來解答了,

話說如果突然失去通信的這種,你也沒辦法,網(wǎng)絡(luò)如果又恢復(fù)了呢??我隨便說說的

論壇徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16賽季CBA聯(lián)賽之江蘇
日期:2017-11-27 11:42:3515-16賽季CBA聯(lián)賽之八一
日期:2017-04-12 14:26:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-08-20 10:43:1215-16賽季CBA聯(lián)賽之廣夏
日期:2016-06-23 09:53:58程序設(shè)計版塊每日發(fā)帖之星
日期:2016-02-11 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2016-02-09 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2015-12-25 16:40:3515-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-22 09:39:36程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-24 06:20:002015亞冠之德黑蘭石油
日期:2015-08-07 09:57:302015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報告]
發(fā)表于 2016-08-19 15:55 |只看該作者
本帖最后由 lxyscls 于 2016-08-19 22:09 編輯

回復(fù) 1# kaede_1


    講錯,看來還是select(read) -> read = 0 -> close

論壇徽章:
5
戌狗
日期:2014-06-09 10:29:10酉雞
日期:2014-12-01 16:05:27處女座
日期:2015-01-07 18:35:262015亞冠之水原三星
日期:2015-06-03 09:26:222015亞冠之布里斯班獅吼
日期:2015-06-15 10:53:54
4 [報告]
發(fā)表于 2016-08-19 16:52 |只看該作者
回復(fù) 3# lxyscls


    write=-1 是嘛意思?我這邊測試,第一次client send之后,服務(wù)端接收后close,client端接下來在嘗試去發(fā)送,但是此時服務(wù)端已經(jīng)接收不到信息,再一次發(fā)送時觸發(fā)了signal broken pipe。
    我想問的就是,在服務(wù)端關(guān)閉之后,client端如何檢測到這一事件。

論壇徽章:
27
處女座
日期:2016-04-18 14:00:4515-16賽季CBA聯(lián)賽之福建
日期:2023-03-31 15:54:2315-16賽季CBA聯(lián)賽之深圳
日期:2020-06-02 10:10:5015-16賽季CBA聯(lián)賽之廣夏
日期:2019-07-23 16:59:452016科比退役紀(jì)念章
日期:2019-06-26 16:59:1315-16賽季CBA聯(lián)賽之天津
日期:2019-05-28 14:25:1915-16賽季CBA聯(lián)賽之青島
日期:2019-05-16 10:14:082016科比退役紀(jì)念章
日期:2019-01-11 14:44:062016科比退役紀(jì)念章
日期:2018-07-18 16:17:4015-16賽季CBA聯(lián)賽之上海
日期:2017-08-22 18:18:5515-16賽季CBA聯(lián)賽之江蘇
日期:2017-08-04 17:00:4715-16賽季CBA聯(lián)賽之佛山
日期:2017-02-20 18:21:13
5 [報告]
發(fā)表于 2016-08-19 17:16 |只看該作者
看了好幾個網(wǎng)絡(luò)庫 都是通過 read() == 0 來判定連接斷開的

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書徽章
日期:2016-07-19 13:54:03程序設(shè)計版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
6 [報告]
發(fā)表于 2016-08-19 17:23 |只看該作者
read write 返回值 + 心跳超時

有些時候,比如對方突然斷電,進(jìn)電梯信號沒了,尤其移動端,這些情況很常見,這些場景,只能心跳超時來判斷

論壇徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16賽季CBA聯(lián)賽之江蘇
日期:2017-11-27 11:42:3515-16賽季CBA聯(lián)賽之八一
日期:2017-04-12 14:26:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-08-20 10:43:1215-16賽季CBA聯(lián)賽之廣夏
日期:2016-06-23 09:53:58程序設(shè)計版塊每日發(fā)帖之星
日期:2016-02-11 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2016-02-09 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2015-12-25 16:40:3515-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-22 09:39:36程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-24 06:20:002015亞冠之德黑蘭石油
日期:2015-08-07 09:57:302015年辭舊歲徽章
日期:2015-03-03 16:54:15
7 [報告]
發(fā)表于 2016-08-19 22:05 |只看該作者
本帖最后由 lxyscls 于 2016-08-19 22:10 編輯

回復(fù) 4# kaede_1


    恩,select讀事件吧,讀事件里面read = 0 close(fd)
    看了一下broken pipe的原因,記得是write兩次,第二次fd已經(jīng)收到rst,前面通過write=-1判斷不對

    http://linkyou.blog.51cto.com/1332494/751877

論壇徽章:
5
戌狗
日期:2014-06-09 10:29:10酉雞
日期:2014-12-01 16:05:27處女座
日期:2015-01-07 18:35:262015亞冠之水原三星
日期:2015-06-03 09:26:222015亞冠之布里斯班獅吼
日期:2015-06-15 10:53:54
8 [報告]
發(fā)表于 2016-08-22 11:00 |只看該作者
各位大牛,我指的是發(fā)送,而不是讀取。因此憑借read返回值為0來判斷是不行的

而且本地試過,服務(wù)端關(guān)閉連接后,客戶端第一次send的返回值是正常的,因此此時也不能通過send的返回值來判斷。

在網(wǎng)上查過,可以通過select和epoll來監(jiān)測rst信號,但是對于僅發(fā)送數(shù)據(jù)的客戶端來說又有點繁重。

想請教大牛們有沒有什么好方法,多謝!

論壇徽章:
9
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-18 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-01 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-02 06:20:00每日論壇發(fā)貼之星
日期:2015-11-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-03 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-04 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-06 06:20:00數(shù)據(jù)庫技術(shù)版塊每周發(fā)帖之星
日期:2015-12-02 15:02:47數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-08 06:20:00
9 [報告]
發(fā)表于 2016-08-23 11:59 |只看該作者
本帖最后由 wlmqgzm 于 2016-08-23 12:09 編輯

//  我的檢測socket_closed的代碼
bool  Asio_tcp_socket::find_socket_closed( boost::asio::ip::tcp::socket &socket1, int int_socket_handle_init )
{
  int int_socket_handle = socket1.native_handle();
  if( int_socket_handle <= 0 )   {
    if( g_message_out_level>=5 )  log_message_int( "find socket closed. socket_init",  int_socket_handle_init );
    return true;
    }
  struct tcp_info info;
  int length = sizeof(info);
  memset( &info,0,sizeof(info) );
  getsockopt( int_socket_handle, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&length );
  if( info.tcpi_state == 1 )   return false;
  if( g_message_out_level >=5 )   log_message_int( "find socket closed. socket_init",  int_socket_handle_init );
  return true;
}

論壇徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16賽季CBA聯(lián)賽之江蘇
日期:2017-11-27 11:42:3515-16賽季CBA聯(lián)賽之八一
日期:2017-04-12 14:26:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-08-20 10:43:1215-16賽季CBA聯(lián)賽之廣夏
日期:2016-06-23 09:53:58程序設(shè)計版塊每日發(fā)帖之星
日期:2016-02-11 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2016-02-09 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2015-12-25 16:40:3515-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-22 09:39:36程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-24 06:20:002015亞冠之德黑蘭石油
日期:2015-08-07 09:57:302015年辭舊歲徽章
日期:2015-03-03 16:54:15
10 [報告]
發(fā)表于 2016-08-24 09:06 |只看該作者
回復(fù) 9# wlmqgzm


你這個是主動確認(rèn),樓主的情況總不能write一下確認(rèn)一次吧
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP