⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 谁有c++的多线程编程资料,源代码?? c++ builder - 网络及通讯开发 - 社区 community_csdn_net.txt

📁 linux下c++编程的好文章
💻 TXT
📖 第 1 页 / 共 2 页
字号:
  HANDLE   hComm;   
  //---------------------------------------------------------------------------  
 
  __fastcall   TmainForm::TmainForm(TComponent*   Owner)   
                  :   TForm(Owner)   
  {   
  }   
  //---------------------------------------------------------------------------  
 
  void   __fastcall   TmainForm::Button1Click(TObject   *Sender)   
  {   
        char   *ComNo;   
        String   Temp;   
        DCB   dcb;   
        Temp="COM"+IntToStr(RadioGroup1->ItemIndex+1);   
        ComNo=Temp.c_str();   
        
hComm=CreateFile(ComNo,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);   
        if(hComm==INVALID_HANDLE_VALUE)   
          {   
            MessageBox(0,"端口打开错误!","Comm   Error",MB_OK);   
            return;   
          }   
          //设置串口参数   
        GetCommState(hComm,&dcb);   
        dcb.BaudRate=CBR_9600;   
        dcb.ByteSize=8;   
        dcb.Parity=NOPARITY;   
        dcb.StopBits=ONESTOPBIT;   
        if(!SetCommState(hComm,&dcb))   
            {   
                MessageBox(0,"端口设置错误!","Set   Error",MB_OK);   
                CloseHandle(hComm);   
                return;   
            }   
        Read232->Resume();   
    
  }   
  //---------------------------------------------------------------------------  
 
  void   __fastcall   TmainForm::Memo1KeyPress(TObject   *Sender,   char   &Key) 
  
  {   
        String   Temp;   
        char   *SendData;   
        int   ln;   
        unsigned   long   lrc,BS;   
        if(Key!=13)       //回车结束输入   
        return;   
        if(hComm==0)       //检测端口状态   
        return;   
        Temp=Memo1->Text;   
        SendData=Temp.c_str();   
        BS=Temp.Length();   
        WriteFile(hComm,SendData,BS,&lrc,NULL);       //发送数据   
  }   
  //---------------------------------------------------------------------------  
 
  void   __fastcall   TmainForm::FormCreate(TObject   *Sender)   
  {   
        Read232=new   TRead232(true);   
        Read232->FreeOnTerminate=true;   
  }   
  //---------------------------------------------------------------------------  
 
  void   __fastcall   TmainForm::Button2Click(TObject   *Sender)   
  {   
        Read232->Terminate();   
        if(hComm!=INVALID_HANDLE_VALUE)   
        CloseHandle(hComm);   
        exit(EXIT_SUCCESS);                   
  }   
  //---------------------------------------------------------------------------  
 
  希望对你有个启示!!!!
Top
6 楼wgh166(涌金水牛)回复于 2002-11-15 12:49:09 得分 0 up
Top
7 楼wgh166(涌金水牛)回复于 2002-11-15 13:16:56 得分 0 
/---------------------------------------------------------------------------   
    
  __fastcall   TCleanDataThread::TCleanDataThread(AnsiString   sdate)   
                  :   TThread(false)   
  {   
  }   
    
  void   __fastcall   TCleanDataThread::CleanData()   
  {   
    
                                  try{   
    
                                  CleanForm->Button1->Enabled=false;   
                                  
CleanForm->ADOStoredProc1->Parameters->Items[1]->Value=CleanForm->DateTimePicker1->Date.FormatString("yyyy-mm-dd"); 
  
                      //             CleanForm->ADOStoredProc1->Prepare();   
                                  CleanForm->ADOStoredProc1->ExecProc();   
                                  
CleanForm->num=CleanForm->ADOStoredProc1->Parameters->Items[0]->Value;   
    
                                  }   
                                  catch   (Exception   &exception)   
                                  {   
                                    Application->ShowException(&exception);   
    
                                  }   
    
    
  CleanDataThread   =   new   TCleanDataThread(sDate);   
  CleanDataThread->Priority   =   tpIdle;   
    
  CleanDataThread->OnTerminate=DisplayResult;//线程停止   
    
  ........   
    
  //---------------------------------------------------------------------------  
 
  void   __fastcall   TCleanDataThread::Execute()   
  {   
  CleanData();   
                  //----   Place   thread   code   here   ----   
  }   
  //---------------------------------
Top
8 楼gudufeixiang(七星龙渊)回复于 2002-12-24 01:07:14 得分 0 m
Top
9 楼cuilin2002(青出于蓝而胜于蓝)回复于 2002-12-25 11:25:46 得分 0 给你个api的例子   
  //---------------------------------------------------------------------------  
 
    
  #include   <vcl.h>   
  #pragma   hdrstop   
  #include   "winsock2.h"   
  #include   "s.h"   
    
  //---------------------------------------------------------------------------  
 
  #pragma   package(smart_init)   
  #pragma   resource   "*.dfm"   
  #define   WSVERS MAKEWORD(2,   0)   
  DWORD   WINAPI   TCP_Echo(LPVOID   lpPara);   
  DWORD   WINAPI   MainThread(LPVOID   lpPara);   
  TForm1   *Form1;   
  struct   sockaddr_in   fsin,sin;   
  SOCKET   msock,   ssock;   
  unsigned   short   port   =3223;   
  int   alen;   
  HANDLE   Socket_Single[3];   
  int   CreateListen();   
  //---------------------------------------------------------------------------  
 
  DWORD   WINAPI   TCP_Echo(LPVOID   lpPara)   
  {   
          char   buf[858];   
          char   buff1[9];   
          char   buff2[850+1];   
          SOCKET   socket;   
          socket=(SOCKET   )lpPara;   
          recv(socket,   buf,   sizeof(buf),   0);   
          send(socket,buf,sizeof(buf),0);   
          Form1->Memo1->Lines->Add(buf);   
          memset(buff1,0,sizeof(buff1));   
          memset(buff2,0,sizeof(buff2));   
          memcpy(buff1,buf,8);   
          memcpy(buff2,buf+8,850);   
          long   pri=0;   
          DWORD   dw=WaitForMultipleObjects(3,Socket_Single   ,false   ,60000);  
 
          switch   (dw)   
                                        {   
                                          case   WAIT_OBJECT_0+0   :   
    
                                          Form1->Query1->SQL->Clear();   
                                          Form1->Query1->SQL->Add("INSERT   INTO 
  T_toSwitch   (capcode,contents)");   
                                          
Form1->Query1->SQL->Add("VALUES(:buff1,:buff2)");   
                                          
Form1->Query1->Params->Items[0]->AsString=buff1;   
                                          
Form1->Query1->Params->Items[1]->AsString=buff2;   
                                          Form1->Query1->ExecSQL();   
    
                                          ReleaseSemaphore(Socket_Single[0]   
,1,&pri);   
    
                                          break;   
                                          case   WAIT_OBJECT_0+1   :   
    
    
                                          Form1->Query2->SQL->Clear();   
                                          Form1->Query2->SQL->Add("INSERT   INTO 
  T_toSwitch   (capcode,contents)");   
                                          
Form1->Query2->SQL->Add("VALUES(:buff1,:buff2)");   
                                          
Form1->Query2->Params->Items[0]->AsString=buff1;   
                                          
Form1->Query2->Params->Items[1]->AsString=buff2;   
                                          Form1->Query2->ExecSQL();   
    
                                          ReleaseSemaphore(Socket_Single[1]   
,1,&pri);   
    
                                          break;   
                                          case   WAIT_OBJECT_0+2   :   
    
                                          Form1->Query3->SQL->Clear();   
                                          Form1->Query3->SQL->Add("INSERT   INTO 
  T_toSwitch   (capcode,contents)");   
                                          
Form1->Query3->SQL->Add("VALUES(:buff1,:buff2)");   
                                          
Form1->Query3->Params->Items[0]->AsString=buff1;   
                                          
Form1->Query3->Params->Items[1]->AsString=buff2;   
                                          Form1->Query3->ExecSQL();   
    
                                          ReleaseSemaphore(Socket_Single[2]   
,1,&pri);   
    
                                          break;   
                                          case     WAIT_TIMEOUT   :   
    
                                          break;   
                                          default:   
                                          break;   
    
                                          }   
    closesocket(socket);   
    return   0;   
    }   
    
    DWORD   WINAPI   MainThread(LPVOID   lpPara)   
    {   
      CreateListen();   
      return   0;   
      }   
  __fastcall   TForm1::TForm1(TComponent*   Owner)   
                  :   TForm(Owner)   
  {   
  Socket_Single[0]   =   CreateSemaphore(NULL,1,1,NULL);   
  Socket_Single[1]   =   CreateSemaphore(NULL,1,1,NULL);   
  Socket_Single[2]   =   CreateSemaphore(NULL,1,1,NULL);   
  }   
  //---------------------------------------------------------------------------  
 
    
      int   CreateListen()   
      {   
          WSADATA   wsadata;   
          if   (WSAStartup(WSVERS,&wsadata)   !=   0)   
            {   
              MessageBox(NULL,"wsock32.dll   can   not   be   
initialized","warning",MB_OK);   
              exit(EXIT_FAILURE);   
            }   
                  Form1->Memo1->Lines->Add("服务器已经启动");   
                  memset(&sin,   0,   sizeof(sin));   
  sin.sin_family   =   AF_INET;   
  sin.sin_addr.s_addr   =INADDR_ANY;   
  sin.sin_port   =   htons(port);   
                  msock   =   socket(AF_INET,   SOCK_STREAM,   0);   
  if   (msock   ==   INVALID_SOCKET)   
  {   
                  MessageBox(NULL,"create   socket   error!","warning",MB_OK);   

                  exit(EXIT_FAILURE);   
                  }   
                  if   (bind(msock,   (struct   sockaddr   *)&sin,   
sizeof(sin))==SOCKET_ERROR)   
  {   
                  MessageBox(NULL,"bind   error!","warning",MB_OK);   
                  exit(EXIT_FAILURE);   
                  }   
                  if   (listen(msock,   200)==SOCKET_ERROR)   
  {   
                  MessageBox(NULL,"listen   error!","warning",MB_OK);   
                  exit(EXIT_FAILURE);   
                  }   
                  while(1)   
  {   
                        alen   =   sizeof(struct   sockaddr);   
                        ssock   =   accept(msock,   (struct   sockaddr   
*)&fsin,   &alen);   
                        Form1->Memo1->Lines->Add("connect");   
                        if   (ssock   ==   INVALID_SOCKET)   
                        {   
                        MessageBox(NULL,"accept   error!","warning",MB_OK);   
                          exit(EXIT_FAILURE);   
                          }   
                          DWORD   dwThreadId;   
                          
if(CreateThread(NULL,0,TCP_Echo,(LPVOID)ssock,0,&dwThreadId)<0)   
  {   
                                  MessageBox(NULL,"Create   thread   
error!","warning",MB_OK);   
                                  exit(EXIT_FAILURE);   
  }   
    
                  }   
    
    
    }   
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)   
  {   
  DWORD   ID;   
  CreateThread(NULL,0,MainThread,NULL,0,&ID);   
  return   ;   
  }   
  //---------------------------------------------------------------------------  
 
    
  
Top
10 楼easyxu(Bryan)回复于 2002-12-25 16:59:38 得分 0   
    
  好好棒哟,你工作的地方不错嘛。
Top
你可能对以下的问题也比较感兴趣....谁有c++builder的网络、数据库 多线程编程资料,源代码?? 
  C#的多线程编程 
  Windows 核心编程 C++ 源代码 
  c++能实现多线程编程吗? 
  Pro *C编程,多线程处理 
  C++Builder多线程编程实例 
  求《C++编程思想》的配书源代码 
  哪里有<<VISUAL C++MFC扩展编程实例>>的源代码? 


            Copyright © 2005-2008 80diy.com All rights reserved.Best view by 
            IE5.x 1024*768 



站长统计 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -