CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

急!急!急!急!急!急!哪位大侠帮忙解决我的编程问题!关于网络文件传输!

楼主lymzyc(豆豆)2003-06-01 02:44:27 在 C++ Builder / 基础类 提问

void_fastcall   TNetTelForm::ConnectClick(TObject   *Sender)  
  {  
      IsPaused=false;  
      waveInStart(phwi);  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::PauseClick(TObject   *Sender)  
  {  
      if(IsPaused)  
      waveInStop(phwi);  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ResumeClick(TObject   *Sender)  
  {  
      waveInStart(phwi);  
  }  
  //------------------------------------------------------------------  
  void   _fastcall   TNetTelForm::StopClick(TObject   *Sender)  
  {  
      ServerSocket1->Active=false;  
      ClientSocket1->Active=false;  
      IsPaused=true;  
      waveInReset(phwi);  
      waveInStop(phwi);  
      for(int   i=0;i<=1;i++)  
      FreeInputBuffer(phwi,lpInWaveHdr[i]);  
      waveInClose(phwi);  
   
      waveOutReset(phwo);  
      waveOutBreakLoop(phwo);  
      for(int   i=0;i<=1;i++)  
      FreeOutputBuffer(phwo,lpOutWaveHdr[i]);  
      waveOutClose(phwo);  
      StatusBar->Panels->Items[0]->Text=“Is   Stoped!”;  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::VolumeBarChange(TObject   *Sender)  
  {  
      Volume=Voleume&0x00000000;  
      Volume=Voleume^((DWORD)Volume->Position*0xFFFF/100);  
      Volume=Volume^((DWORD)VolumeBar->Position*0xFFFF/100)<<16);  
      If(waveOutSetVolume(pwho,Volume)!=0)  
      ShowMessage(“waveOutSetVolume   error!”);  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ServerSocket1ClientRead(TObject   *Sender,   TCustomWinSocket   *Socket)  
  {  
      if(OutputDeviceUnOpend)  
  {  
      InitializeOutputDevice();  
      OutputDeviceUnOpend=false;  
  }  
      try  
  {  
      ReceiveLength=Socket->ReceiveLength();  
  Socket->ReceiveBuf(lpOutWaveHdr[WhichToPlay]->lpData,ReceiveLength);  
  StatusBar->Panels->Items[1]->Text=AnsiString(“Packages:”)+MsgNumber++;  
  If(waveOutWrite(pwho,lpOutWaveHdr[WhichToPlay],sizeof(WAVEHDR))=0  
  StatusBar->Panels->Items[0]->Text=AnsiString(“Status:”)+(int)WhichToPlay;  
  StatusBar->Panels->Items[2]->Text=AnsiString(“PSize:”)+ReceiveLength;  
  WhichToPlay=!WhichToPlay;  
  }  
      catch(…)  
  {  
      StatusBar->Panels->Items[0]->“WaveOut   error!”;  
  }  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ClientSocket1Error(TObject   *Sender,   TCustomWinSocket   *Socket,TErrorEvent   ErrorEvent,int   &ErrorCode)  
      {  
  Socket->Close();  
        }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ServerSocket1ClientError(TObject   *Sender,   TCustomWinSocket   *Socket,TErrorEvent   ErrorEvent,int   &ErrorCode)  
        {  
  Socket->Close();  
        }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ClientSocket1ClientRead(TObject   *Sender,   TCustomWinSocket   *Socket)  
        {  
            if(OutputDeviceUnOpend)  
              {  
                  InitializeOutputDevice();  
                }  
        }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ExitClick(TObject   *Sender)  
  {  
  if(!=IsPaused)  
  {  
      StopClick(Sender);  
  }  
      delete   &phwi;  
      ExitClick(Sender);  
      TerminateProcess(GetCurrentProcess(),THREAD_SUSPEND_RESUME);  
      Close();  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::CallBackPlay(TMessage*Message)  
  {  
      try  
  {  
  if(IsPaused)  
      return;  
  switch(waveInAddBuffer(phwi,lpInWaveHdr[!IsNeedSWap],sizeof(WAVEHDR)))  
  {  
  case   MMSYSERR_INVALHANDLE:  
            ShowMessage(“MMSYSERR_INVALHANDLE”);break;  
  case   MMSYSERR_NODRIVER:  
                    ShowMessage(“MMSYSERR_NODRIVER”);break;  
                  case   MMSYSERR_NOMEN:  
  ShowMessage(“MMSYSERR_NOMEM”);   break;  
  case   WAVERR_UNPREPARED:  
                    ShowMessage(“WAVERR_   UNPREPARED”);break;  
  }  
              StatusBar->Panels->Items[2]->Text=AnsiString(“PSize:”)+lpInWaveHdr[!IsNeedSwap]->dwBufferLength;  
  Clientsocket1->socket->SendBuf(lpInWaveHdr[!IsNeedSwap]->IpData,  
  lpInWaveHdr[!IsNeedSwap]->dwBufferLength);  
  switch(getwhichtime)  
  {  
      case   0:timebegin=(long)timeGetTime();  
                    getwhichtime=1;  
                    break;  
      case   1:timennd=(long)timeGettime();  
                    getwhichtime=0;  
                    break;  
                }  
              StatusBar->Panels->Items[3]->Text=AnsiString(“Interval:”)+fabs(timebegin-timeend_+AnsiString(“ms”);  
   
  StatusBar->Panels->Items[0]->Text=AnsiString(“Status:”)+(int)IsNeedSwap;  
            IsNeedSwap=!IsNeedSwap;  
        }  
      catch(…)  
        {  
            StatusBar->Panels->Items[0]->Text=“WaveIn   error!”  
        }  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::Nnnnnn(TObject*Sender)  
  {  
  ExitClick(Sender);  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::IntializeInputDevice()  
  {  
      //Set   up   PCMWAVEFORMAT   for   11   kHZ   8-bit   mono.  
      pcmWaveFormat.wFormatTag=WAVE_FORMAT_PCM;  
      pcmWaveFormat.nChannels=1;  
      pcmWaveFormat.nSamplesPerSec=11025L;  
      pcmWaveFormat.nAvgBytesPerSec=11025L;  
      pcmWaveFormat.nBlockAlign=1;  
      pcmWaveFormat.wBitPerSample=8;  
      pcmWaveFormat.cbSize=0;  
      //open   the   output   device.  
      Switch(waveInOpen(&phwi,WAVE_MAPPER,&pcmWaveFormat,(unsigned   long)Handle,0,CALLBACK_WINDOW))  
      {  
        case   MMSYSERR_ALLOCATED:  
                  ShowMessage(“MMSYSERR_ALLOCATED”);break;  
        case   MMSYSERR_BADDEVICEID:  
                  ShowMessage(“MMSYSERR_ALLOCATED”);break;  
  case   MMSYSERR_NODRIVER:  
          ShowMessage(“MMSYSERR_NODRIVER”);break;  
  case   WAVERR_STILLPLAYING:  
  ShowMessage(“WAVERR_STILLPLAYING”);break;  
        case   WAVERR_BADFORMAT:  
                  ShowMessage(“WAVERR_BADFORMAT”);break;  
      }  
      //allocate   memory   and   prepare   for   recording.  
      for(int   i=0;i<=1;i++)  
      {  
        lpInWaveHdr[i]=AllocateInputLPWAVEHDRMemory(8*1024);  
  switch(waveInPrepareHeader(phwi,lpInWaveHdr[i],sizeof(WAVEHDR)))  
  {  
  case   MMSYSERR_INVALHANDLE:  
                        ShowMessage(“MMSYSERR_INVALHANDLE”);break;  
        case   MMSYSERR_NODRIVER:  
                SowMessage(“MMSYSERR_NODRIVER”);break;  
              case   MMSYSERR_NOMEN:  
                        ShowMessage(“MMSYSERR_NOMEM”);   break;  
  }  
        }  
  switch(waveInAddBuffer(phwi,lpInWaveHdr[IsNeedSwap],sizeof(WAVEHDR)))  
  {  
  case   MMSYSERR_INVALHANDLE:  
                  ShowMessage(“MMSYSERR_INVALHANDLE”);break;  
  case   MMSYSERR_NODRIVER:  
          SowMessage(“MMSYSERR_NODRIVER”);break;  
        case   MMSYSERR_NOMEN:  
                  ShowMessage(“MMSYSERR_NOMEM”);   break;  
        case   WVERR_UNPREPARED:  
          ShowMessage(“WAVERR_   UNPREPARED”);break;  
      }  
  }  
  //-----------------------------------------------------------------  
  void_fastcall   TNetTelForm::IntializeOutputDevice()  
  {  
      if(waveOutOpen(&phwo,WAVE_MAPPER,&pcmWaveFormat,(unsigned  
      long)Handle,0,CALLBACK_WINDOW)!=0)  
      ::MessageBox(0,“out   Open   error.”,“”,MB_OK);  
      for(int   i=0;i<=1;i++)  
      lpOutWaveHdr[i]=AllocateOutputLPWAVEHDRMemory(phwo,8*1024);  
      //set   volume  
      Volume=Volume&0x00000000;  
      Volume=Voleume^((DWORD)0xFFFF/2);  
      Volume=Volume^(((DWORD)0xFFFF/2)<<16);  
      if(waveOutSetVolume(pwho,Volume)!=0)  
      ShowMessage(“waveOutSetVolume   error!”);  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ServerSocket1ClientConnect(TObject   *Sender,   TCustomWinSocket   *Socket)  
  {  
      StatusBar->Panels->Items[0]->Text=“Clientconnect   OK!”;  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ClientSocket1Disconnect(TObject   *Sender,   TCustomWinSocket   *Socket)  
  {  
      StatusBar->Panels->Items[0]->Text=“lost   server_connection!”;  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::ClientSocket1Connect(TObject   *Sender,   TCustomWinSocket   *Socket)  
  {  
      StatusBar->Panels->Items[0]->Text=“connect   OK!”;  
  }  
  //------------------------------------------------------------------  
  void_fastcall   TNetTelForm::NetTelFormCreate(TObject   *Sender)  
  {  
      LoadFormFile(“图象所在盘符路径”);  
  }  
  //------------------------------------------------------------------  
  怎么实现这个软件啊!? 问题点数:0、回复次数:2Top

1 楼shadowstar(CodeFast for Delphi & C++Builder)回复于 2003-06-01 05:47:53 得分 0

代码是你写的还是别人写的?  
  你就这么把代码贴上来问么?  
  只能说你这个人太懒!Top

2 楼matq2008(叶子.net)回复于 2003-06-01 09:03:54 得分 0

错误处理不能忘了:Errorcode=0  
  就是播放、传输Top

相关问题

  • 局域网内传输文件的网络编程问题
  • 非编程问题:数据传输,急!!!
  • Socket文件传输,急急。。
  • 如何编程实现两台拨号上网机器的文件传输?
  • 用MFC提供的WINSOCK编程类实现文件传输的问题
  • 编程实现局域网文件共享、传输、权限控制问题
  • 急!如何编程实现pdf文件转html文件?
  • 传输文件
  • 文件传输
  • 传输文件???

关键词

  • socket
  • tnettelform
  • phwi
  • whichtoplay
  • fastcall
  • receivelength
  • tobject
  • statusbar
  • panels
  • ispaused

得分解答快速导航

  • 帖主:lymzyc

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo