MFC-3

1.SOCKET客户端
       void CTcpDlg::OnButtonConnect()
        {
         // TODO: Add your control notification handler code here
            if(one_pthread==0)
            {one_pthread++;

             SOCKADDR_IN addsock;
             DWORD ip;
             ((CIPAddressCtrl *)GetDlgItem(IDC_IPADDRESS1))->GetAddress(ip);
             client_1=socket(AF_INET,SOCK_STREAM,0);
             if(client_1==INVALID_SOCKET)
             {MessageBox("创建套接字失败");}
             addsock.sin_family=AF_INET;
             addsock.sin_port=htons(3332);
             addsock.sin_addr.S_un.S_addr=htonl(ip);
             int con =connect(client_1,(SOCKADDR *)&addsock,sizeof(SOCKADDR));
             if(con==WSAECONNREFUSED)
             MessageBox("开发板无监听端口程序");
             if(con==WSAETIMEDOUT)
             MessageBox("连接失败");
             info *song=new info;
             song->hwnd=m_hWnd;
             song->sock=client_1;
             song->jpginfo_pt=&getjpg_info;
             HANDLE pth=CreateThread(NULL,0,ss,(LPVOID)song,0,NULL);
             CloseHandle(pth);
             control_sock_init(ip);
            }
         }
  
  
     void CTcpDlg::control_sock_init(DWORD ip)
         {
           control_sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
           SOCKADDR_IN sa; 
        sa.sin_family=AF_INET;
        sa.sin_port=htons(3333);
        sa.sin_addr.S_un.S_addr=htonl(ip);
           if(connect(control_sock,(SOCKADDR *)&sa,sizeof(sa))==SOCKET_ERROR)
          {
                MessageBox("连接失败");
             }
             else MessageBox("连接小车成功");
            }
     DWORD WINAPI CTcpDlg::ss(LPVOID ll)
          { int getjpg_name=0;
         long sum,m;
            info * in=(info *)ll;
         HWND hwnd=in->hwnd;
         SOCKET sock=in->sock;
         int * get_jpg=in->jpginfo_pt;
            char buffer[30000];
            FILE * fp;
            while(TRUE)
            {
           memset(buffer,0,30000);
              sum=recv(sock,buffer,30000,0);
              while(TRUE)
             {
                 if(sum>=30000) break;
                 m=recv(sock,&(buffer[sum]),30000-sum,0);
                 sum=sum+m;
             }
             fp=fopen("D:\\temp.jpg","wb");
             fwrite(buffer,30000,1,fp);
             fclose(fp);
             ::PostMessage(hwnd,WM_SONG,0,0);
             Sleep(150);
          getjpg
             if((*get_jpg)==1)
           {
           (*get_jpg)=0;
        FILE * getjpg_file;
              char name[10];
           sprintf(name,"%d.jpg",getjpg_name++);
           getjpg_file=fopen(name,"wb");
           fwrite(buffer,30000,1,getjpg_file);
              fclose(getjpg_file);
            }
                  /
               }
               return 1;
            }

   void CTcpDlg::song()
            {
           Graphics graphics(GetDC()->m_hDC);
           Image image(L"D:\\temp.jpg");
               graphics.DrawImage(&image,0,0);
            }
   
   struct info
            {
              HWND hwnd;
              SOCKET sock;
              int *  jpginfo_pt;
             };
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值