Как отправить местоположение мыши от клиента 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;
Спасибо за ваше время :)
, если ваш код работает, и вы просто хотите улучшить свой код, то соответствующий сайт http://codereview.stackexchange.com/ – bolov
Одним простым улучшением было бы не сохранение ничего в файлах, просто отправка необработанные байты данных из самих переменных (присваивание cursor_pos.x коротким и, следовательно, для cursor_pos.y, поскольку вам, вероятно, никогда не понадобится актуальная длина, как определяет структура, а затем отправка). –
Похоже, вы пользуетесь FTP-сервером в качестве посредника. Чтобы ускорить это, вы можете либо написать свой собственный сервер, чтобы просто передать данные всем подключенным клиентам, либо (если вы не можете изменить сервер) просто используйте для FTP-сервера, чтобы обнаружить других клиентов и напрямую подключиться к ним. – Galik