2015-01-17 4 views
0

Как отправить местоположение мыши от клиента A = to => SERVER = to => client B?
Пример кода ниже дает мне вывод позиции каждые 2 секундыЧто такое лучший/быстрый способ сделать это?
ВНИМАНИЕ: с помощью Winsock и локон дает предупреждению антивируса от вредоносных программ
ИСПОЛЬЗОВАНИЯ: для дистанционного управления

Текущего пример TEST отправки позиции мыши из клиента A для сервера к клиенту A:Отправка положения мыши над интернетом

1.Write положение мыши
2.store х, у в send.txt файле
3.upload sent.txt на сервере как temp.txt файл
4.Remove receve.txt если существует // ошибка 80, если не
5.download темп .t х, как receve.txt
6.read receve.txt и отображения координат в консоли

int x,y; //positions 
LPCWSTR s=L"C://Documents and Settings//Administrator//Desktop//c++//FTP//send.txt";//location of file for sending 
LPCWSTR r=L"C://Documents and Settings//Administrator//Desktop//c++//FTP//receve.txt";//location of received file 
POINT cursor_pos;//for cursor position 

HINTERNET hInternet; 
    HINTERNET hFtpSession; 
    hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); 
    if (hInternet == NULL) 
    { 
     cout << "Error: " << GetLastError(); 
    } 
    else 
    { 

     hFtpSession = InternetConnect(hInternet, L"www.test.net", INTERNET_DEFAULT_FTP_PORT, L"user", L"pass", INTERNET_SERVICE_FTP, 0, 0); 
     if (hFtpSession == NULL)//not connect 
     { 
      cout << "Error: " << GetLastError(); 
     } 
     else 
     {  


      for(;;){ 
//file input 
fstream inp; 
inp.open(s); 

GetCursorPos(&cursor_pos); 
inp<<cursor_pos.x<<" "<<cursor_pos.y<<endl;//write curent position 



inp.close(); 

      //UPLOADING 
      if (!FtpPutFile(hFtpSession, s, L"//public_html//test//temp.txt", FTP_TRANSFER_TYPE_BINARY, 0)) 
      { 
       cout << "ErrorPutFile: " << GetLastError(); 
       return 0; 
      } 


      remove("C://Documents and Settings//Administrator//Desktop//c++//FTP//receve.txt");//error 80 if file exist so remove it 
      //DOWNLOADING 
      if(!FtpGetFile(hFtpSession,L"//public_html//test//temp.txt",r,TRUE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,0)) 
      { 

      cout <<"ErrorGetFile"<<GetLastError(); 
      return 0; 
      }//DELETING 
      if(!FtpDeleteFile(hFtpSession,L"//public_html//test//temp.txt")){ 

      cout <<"ErrorGetFile"<<GetLastError(); 
      return 0; 

      } 



ifstream outp(r); 

while(outp>>x>>y){ 
cout<<"X: "<<x<<" "<<"Y:"<<y<<endl;//read coordinates 

} 
outp.close(); 

      } 



     } 
    } 

return 0; 

Спасибо за ваше время :)

+0

, если ваш код работает, и вы просто хотите улучшить свой код, то соответствующий сайт http://codereview.stackexchange.com/ – bolov

+1

Одним простым улучшением было бы не сохранение ничего в файлах, просто отправка необработанные байты данных из самих переменных (присваивание cursor_pos.x коротким и, следовательно, для cursor_pos.y, поскольку вам, вероятно, никогда не понадобится актуальная длина, как определяет структура, а затем отправка). –

+0

Похоже, вы пользуетесь FTP-сервером в качестве посредника. Чтобы ускорить это, вы можете либо написать свой собственный сервер, чтобы просто передать данные всем подключенным клиентам, либо (если вы не можете изменить сервер) просто используйте для FTP-сервера, чтобы обнаружить других клиентов и напрямую подключиться к ним. – Galik

ответ