Changeset 3763 in Sophya for trunk/AddOn
- Timestamp:
- May 2, 2010, 12:13:24 PM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/racqueth.cc
r3762 r3763 53 53 sprintf(msg,"BAORadio-PCIEToEthernet %d %d %d %d %d", par_.MMgrNbPaquet(), par_.MMgrPaquetSize(), dmasz, 0,i); 54 54 // 123456789012345678901234567890 55 sok.Send (msg,BRTCPMSGLEN);56 sok.Receive (msg,BRTCPMSGLEN);55 sok.SendAll(msg,BRTCPMSGLEN); 56 sok.ReceiveAll(msg,BRTCPMSGLEN); 57 57 if (strncmp(msg,"BAORadio-EthernetReader-OK",26)!=0) 58 58 throw SocketException("PCIEToEthernet:ERROR/ Connection to EthernetReader not established "); … … 140 140 for(size_t j=0; j<vskt.size(); j++) { 141 141 for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0'; 142 vskt[j].Receive (msg,BRTCPMSGLEN);142 vskt[j].ReceiveAll(msg,BRTCPMSGLEN); 143 143 if (strncmp(msg,"BAORadio-EthernetReader-Ready-GO",32)!=0) { 144 144 msg[BRTCPMSGLEN-1]='\0'; … … 316 316 size_t PCIEToEthernet::SendToTargets(int fib, Byte* data, size_t len) 317 317 { 318 // cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++;318 //DBG cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++; 319 319 vector<ClientSocket>& vskt = vvec_skt_[fib]; 320 320 size_t rc=0; … … 323 323 sprintf(msg,"PCIEToEthernet-SendCnt %d",vec_cntpaq_[fib]); 324 324 for(size_t j=0; j<vskt.size(); j++) { 325 vskt[j].Send (msg, BRTCPMSGLEN2);325 vskt[j].SendAll(msg, BRTCPMSGLEN2); 326 326 } 327 327 if (vec_cntpaq_[fib]>0) { 328 328 for(size_t j=0; j<vskt.size(); j++) { 329 vskt[j].Receive (msg, BRTCPMSGLEN2);329 vskt[j].ReceiveAll(msg, BRTCPMSGLEN2); 330 330 msg[BRTCPMSGLEN2-1]='\0'; 331 331 if (strncmp(msg,"EthernetReader-RecvCnt",22) != 0) … … 334 334 } 335 335 } 336 for(size_t j=0; j<vskt.size(); j++) { 337 rc += vskt[j].SendAll((const char *)data, len); 338 totrdsnd_ += eths_bsz_; 339 } 340 vec_cntpaq_[fib]++; 341 return rc; 342 /* 336 343 if (eths_bsz_<16) { 337 344 for(size_t j=0; j<vskt.size(); j++) { 338 rc += vskt[j].Send ((const char *)data, len);345 rc += vskt[j].SendAll((const char *)data, len); 339 346 totrdsnd_ += eths_bsz_; 340 347 } … … 348 355 for(size_t i=0; i<nblk; i++) { 349 356 for(size_t j=0; j<vskt.size(); j++) { 350 rc += vskt[j].Send ((const char *)data+off, eths_bsz_);357 rc += vskt[j].SendAll((const char *)data+off, eths_bsz_); 351 358 totrdsnd_ += eths_bsz_; 352 359 } … … 356 363 if (fblk>0) { 357 364 for(size_t j=0; j<vskt.size(); j++) { 358 rc += vskt[j].Send ((const char *)data+off, fblk);365 rc += vskt[j].SendAll((const char *)data+off, fblk); 359 366 totrdsnd_ += fblk; 360 367 } … … 362 369 vec_cntpaq_[fib]++; 363 370 return rc; 371 */ 364 372 } 365 373 //------------------------------------------------------------------ … … 397 405 Socket sok=srv.WaitClientConnection(); 398 406 for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0'; 399 sok.Receive (msg,BRTCPMSGLEN);407 sok.ReceiveAll(msg,BRTCPMSGLEN); 400 408 if (strncmp(msg,"BAORadio-PCIEToEthernet",23)!=0) 401 409 throw SocketException("EthernetReader:ERROR/ Bad message from PCIEToEthernet client !"); … … 404 412 if (((uint_4)ia!=par_.MMgrNbPaquet()) || ((uint_4)ib!=par_.MMgrPaquetSize())) { 405 413 strcpy(msg,"BAORadio-EthernetReader-BAD MMgrNbPaquet/MMgrPaquetSize()"); 406 sok.Send (msg,BRTCPMSGLEN);414 sok.SendAll(msg,BRTCPMSGLEN); 407 415 throw SocketException("EthernetReader:ERROR/ Bad MMgrNbPaquet/MMgrPaquetSize() from PCIEToEthernet client !"); 408 416 } 409 417 for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0'; 410 418 strcpy(msg,"BAORadio-EthernetReader-OK"); 411 sok.Send (msg,BRTCPMSGLEN);419 sok.SendAll(msg,BRTCPMSGLEN); 412 420 vsok_.push_back(sok); 413 421 cout << " EthernetReader/Info connection/link" << fib << " established." << endl; … … 437 445 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 438 446 cout << " EthernetReader/Debug - Sending GO message to sender " << fib << endl; 439 vsok_[fib].Send (msg,BRTCPMSGLEN);447 vsok_[fib].SendAll(msg,BRTCPMSGLEN); 440 448 } 441 449 Byte* nextpaq=NULL; … … 550 558 char msg[BRTCPMSGLEN2]; 551 559 msg[0]='\0'; 552 vsok_[fib].Receive (msg, BRTCPMSGLEN2);560 vsok_[fib].ReceiveAll(msg, BRTCPMSGLEN2); 553 561 if (strncmp(msg,"PCIEToEthernet-SendCnt",22) != 0) 554 562 cout << " EthernetReader::ReceiveFromSocket/ BAD HandShake message : " << msg << endl; 555 563 } 556 564 rc += vsok_[fib].ReceiveAll(data, len); 565 vec_cntpaq_[fib]++; 566 567 /* 557 568 if (ethr_bsz_<16) { 558 rc += vsok_[fib].Receive (data, len);569 rc += vsok_[fib].ReceiveAll(data, len); 559 570 } 560 571 else { … … 564 575 if (nblk>0) { 565 576 for(size_t i=0; i<nblk; i++) { 566 rc += vsok_[fib].Receive (data+off, ethr_bsz_);577 rc += vsok_[fib].ReceiveAll(data+off, ethr_bsz_); 567 578 off += ethr_bsz_; 568 579 } 569 580 } 570 581 if (fblk>0) { 571 rc += vsok_[fib].Receive (data+off, fblk);582 rc += vsok_[fib].ReceiveAll(data+off, fblk); 572 583 } 573 584 } 574 585 vec_cntpaq_[fib]++; 586 */ 575 587 576 588 if (vec_cntpaq_[fib]%par_.MMgrNbPaquet() == 0) { 577 589 char msg[BRTCPMSGLEN2]; 578 590 sprintf(msg,"EthernetReader-RecvCnt %d",vec_cntpaq_[fib]); 579 vsok_[fib].Send (msg, BRTCPMSGLEN2);591 vsok_[fib].SendAll(msg, BRTCPMSGLEN2); 580 592 } 581 593 return rc; -
trunk/AddOn/TAcq/swrapsock.cc
r3757 r3763 95 95 } 96 96 else return 0; 97 } 98 99 /* --Methode-- */ 100 size_t Socket::SendAll(const char * buff, size_t len) 101 { 102 size_t nst = 0; 103 int ntry = 0; 104 while (nst < len) { 105 size_t ns = Send(buff+nst, len-nst); 106 ntry++; 107 if (ns < 1) break; 108 nst += ns; 109 } 110 if (nst < len) { 111 cout << " Socket::SendAll() / ERROR ! ntry=" << ntry 112 << " nst=" << nst << " len=" << len << endl; 113 throw SocketException("Socket::SendAll() Error NBytesSent < len "); 114 } 115 return nst; 116 } 117 118 /* --Methode-- */ 119 size_t Socket::ReceiveAll(char * buff, size_t len) 120 { 121 size_t nrt = 0; 122 int ntry = 0; 123 while (nrt < len) { 124 size_t nr = Receive(buff+nrt, len-nrt); 125 ntry++; 126 if (nr < 1) break; 127 nrt += nr; 128 } 129 if (nrt < len) { 130 cout << " Socket::ReceiveAll / ERROR ! ntry=" << ntry 131 << " nrt=" << nrt << " len=" << len << endl; 132 throw SocketException("Socket::ReceiveAll() Error NBytesRecv < len "); 133 } 134 return nrt; 97 135 } 98 136 -
trunk/AddOn/TAcq/swrapsock.h
r3757 r3763 41 41 size_t Send(const char * buff, size_t len, int flag=0); 42 42 size_t Receive(char * buff, size_t len, int flag=0); 43 size_t SendAll(const char * buff, size_t len); 44 size_t ReceiveAll(char * buff, size_t len); 45 43 46 int Close(); 44 47
Note:
See TracChangeset
for help on using the changeset viewer.