作者Dforce (VF-17)
看板C_and_CPP
標題Re: [問題] socket在第一次recv後 會自動斷線
時間Wed Jun 29 21:23:06 2011
YEAH~~~~~~~~~
我終於發現癥結了 Orz
最根本的原因就是 send()啊!!!
因為 len 設定成 MAXLINE = 65535
於是底層的buffer就爆炸了
大家可以收工了
--
對於花這麼久時間才發現問題的自己 感到十分悔恨......
Q________Q
: do{
: if( send(s, send_buf, MAXLINE, 0) == SOCKET_ERROR)
^^^^^^^^^^^^^^^^^^^^^^^^^
: cerr << "Send message error\n" << send_buf;
: else
: cout << "Client send:\n" << send_buf;
: if( (n = recv(s, recv_buf, MAXLINE, 0)) == 0){
: cerr << "Connection closed\n";
: break;
: }
: else if( n == SOCKET_ERROR){
: cerr << "Received error\n" << WSAGetLastError();
: break;
: }
: else{
: recv_buf[n] = '\0';
: cout << recv_buf;
: }
: }while( fgets(send_buf, MAXLINE, stdin) != NULL );
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.131.41
推 werbnm:真是太感謝你啦 從下午跟一直跟我推敲問題I!! 06/29 21:31
推 werbnm:真是感受到非常溫暖阿(雖然現在很熱XDDD) 06/29 21:34