ServerSocket 傳大量資料的問題 |
|
wildbarj
一般會員 發表:4 回覆:1 積分:1 註冊:2005-04-10 發送簡訊給我 |
因為特殊需要 server 端為bcb, client端為VC++
內有三個程式
\FileTransferClientView
\FileTransferServer
\bcb_server FileTransferClientView,FileTransferServer 這兩個都是vc++ ,可以互相傳檔
bcb_server是由FileTransferServer 改到bcb
而bcb_server跟FileTransferClientView互相傳檔會發生問題 如果檔案傳輸稍微大一點(約2Mb以上),下面這邊code (bcb_server)會只傳到一半就出現SOCKET_ERROR 的問題
如果在doneSoFar = ServerSocket1->Socket->Connections[0]->SendBuf(sendData , sendThisTime );
前面或後面加一個 Sleep(50) , 反而問題就不見了
或是用step by step 來trace也不會出現問題
猜測是不是queue滿了塞住的關係
或是有其他問題.... 不知道如何解決 ps.
這個問題還是有時候出現 有時候消失...頭痛的很
doneSoFar = ServerSocket1->Socket->Connections[0]->SendBuf(sendData , sendThisTime ); // test for errors and get out if they occurred if ( doneSoFar == SOCKET_ERROR ) { int iErr = ::GetLastError(); StatusBar1->SimpleText=("SendData error at: "+AnsiString(sourceFile->Size-cbLeftToSend)+" bytes ,GetLastErr= "+ AnsiString(iErr)); goto PreReturnCleanup; }GetLassErr= 10355 ? 請問這個有相關訊息可以查嗎 28672 bytes 是SendBuf() 跑了七次就出現SocketErr
附加檔案:72151_ask.rar
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |