level 1
xgywd
楼主
我的封包void fengbof(sendbuf){ unsigned int arr=arraylen/1024;sendbuf[0].buf=(char*)&arr;sendbuf[0].len=sizeof(arraylen); sendbuf[2].buf=new char[1024];sendbuf[2].len=1024;sendbuf[3].buf=new char[4];sendbuf[3].len=4;sendbuf[4].buf=(char*)&arraylen;sendbuf[4].len=4;sendbuf[5].buf=(char*)strFileName.c_str();sendbuf[5].len=(u_long)strFileName.size(); sendbuf[1].buf=(char*)&fbit;sendbuf[1].len=sizeof(fbit)+1;memset(sendbuf[2].buf,0,1024);infile.read(sendbuf[2].buf,1024);memset(sendbuf[3].buf,0,4);sendbuf[3].buf[0]=sendbuf[0].buf[0];sendbuf[3].buf[1]=sendbuf[1].buf[0];sendbuf[3].buf[2]=sendbuf[2].buf[0];sendbuf[3].buf[3]='c';++fbit;}我的发送if(SOCKET_ERROR!=WSASendTo(sever, sendbuf, 6, &dwsend, 0, (sockaddr*)&addr,sizeof(sockaddr), NULL, NULL)){ strtext+=L"发包成功...\r\n"; m_edit.SetWindowTextW(strtext.c_str());}else{geterror();}我的收包if(SOCKET_ERROR==WSARecvFrom(sever,recbuf,6,&dwread,&dwflag,(sockaddr*)&addrfrom,&len,NULL,NULL)){strtext+=L"接收数据错误!\r\n";m_edit.SetWindowTextW(strtext.c_str());return 0;}else{if ( recbuf[3].buf[0]==recbuf[0].buf[0] &&recbuf[3].buf[1]==recbuf[1].buf[0] &&recbuf[3].buf[2]==recbuf[2].buf[0]){ jiao=true; strtext+=L"接包成功...\r\n";m_edit.SetWindowTextW(strtext.c_str());}else{ strtext += L"外来包丢弃...\r\n"; m_edit.SetWindowTextW(strtext.c_str());}收包的时候我有一个验证,就是根据封包时写的那样。结果现在我就是能发不能收,哪位大侠给看看
2008年08月10日 15点08分
1