рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдФрд░ рдХреЛрдб рд╢реЗрдпрд░рд┐рдВрдЧ рд╕реЗрд╡рд╛

рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рд╢рд╛рдпрдж рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдмрдЯрди рдХреЗ рдХреНрд▓рд┐рдХ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: рдЖрдк рдПрдХ рд╣реЙрдЯрдХреА рджрдмрд╛рддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░реАрди рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рдиреЗ рд╢рд╛рдпрдж рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ - рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕реНрд░реЛрдд рдХреЛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╣рдордиреЗ рдЗрди рджреЛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ:



рд╕реЗрд╡рд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ:



рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдбреЗрдореЙрди рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИред рд╕рднреА рдкреНрд░рд╛рдкреНрдд рдлрд╛рдЗрд▓реЗрдВ http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ - рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Nginx + php & fastcgi рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдЖрд╡реЗрджрди


рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Qt рдлреНрд░реЗрдорд╡рд░реНрдХ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рд▓рд╛рдн - рдЕрдЪреНрдЫрд╛ рдкреНрд░рд▓реЗрдЦрди, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдЙрд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЙрдЯрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛рдо рдХреЗ рд▓рд┐рдП qxt рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред

рдЖрд╡реЗрджрди рдореЗрдВ рдирд┐рдореНрди рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:



рдЖрд╡реЗрджрди - рдпрд╣рд╛рдВ рдЖрдк рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЙрдЯрдХреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЯреНрд░реЗ рдФрд░ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЗрдЯрд╡рд░реНрдХ - рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛рдиреА рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг http- рдЬреИрд╕реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрдирд╛, рд╕рд░реНрд╡рд░ рд╕реЗ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░рд╡рд┐рдбрдЧреЗрдЯ, рдЗрдореЗрдЬрд╕реЗрд▓реЗрдХреНрдЯрд╡рдЧреЗрдЯ, рд▓реИрдВрдЧреНрд╡реЗрдЬрд╕реЗрд▓реЗрдбрд┐рдпреЛрдЧреНрд▓, рд╕реНрдХреИрдирд╣реЛрдХрдбреЗрдпрд╛рд▓реЙрдЧ - рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдВрдбреЛ, рдЫрд╡рд┐ рдЪрдпрди рд╡рд┐рдВрдбреЛ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдФрд░ рд╣реЙрдЯрдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕рд░рд▓ рд╡рд░реНрдЧред

рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд╛рдзрд╛рди рд╕реЗ, QLocalServer рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдХрд▓реНрдк рдерд╛, рдФрд░ рдЗрд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдЕрд╕рдлрд▓ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдирдпрд╛ рд▓реЙрдиреНрдЪ рд╣реИ рдФрд░ рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред

QLocalSocket socket; socket.connectToServer(APP_NAME); if (socket.waitForConnected(500)) { qDebug() << "Application already launched!"; return false; } _localServer = new QLocalServer(this); if (!_localServer->listen(APP_NAME)) { QLocalServer::removeServer(APP_NAME); _localServer->listen(APP_NAME); } 


рдлрд┐рд░ рд╣реЙрдЯрдХреА рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред Hotkeys рдХреЗ рд╕рд╛рде libqxt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрдкрдХреЛ рдПрдХ рд╣реЙрдЯрдХреА рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдпреЛрдЬрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реНрд▓реЙрдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджреЗрдВ рдЬрд┐рд╕реЗ рдЗрд╕ рд╣реЙрдЯрд▓рд╛рдЗрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 _shortcutScreenFull = new QxtGlobalShortcut; if (!_shortcutScreenFull->setShortcut(QKeySequence(fullHotkey))) qDebug() << "Error activating hotkey:" << fullHotkey; connect(_shortcutScreenFull, SIGNAL(activated()), this, SLOT(processScreenshotFull())) 


рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИред рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕реЗ QBuffer рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ, QByteArray рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬреЗрдВ:

 QPixmap pixmap = QPixmap::grabWindow(QApplication::desktop()->winId()); QByteArray imageBytes; QBuffer buffer(&imageBytes); buffer.open(QFile::WriteOnly); pixmap.save(&buffer, imagetype.toAscii().constData()); buffer.close(); _network->upload(imageBytes, imagetype); 


рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдлрд╛рдЗрд▓ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдЧреНрд░рд╛рд╣рдХ рднреЗрдЬрддрд╛ рд╣реИ:
 proto=pastexen version=1.0 type=jpg size=142034 binary_data 


рдЬрд╣рд╛рдБ jpg рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рд╣реИ; 142034 - рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░; рдмрд╛рдЗрдирд░реА_рдбреЗрдЯрд╛ - рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА

рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ:
 proto=pastexen version=1.0 url=http://host.tst/file1.jpg 


url - рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдЬрд╛рдП рдЧрдП рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдПрдХ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕реАрдзрд╛ рд▓рд┐рдВрдХ

рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╛рд╕ рдХреА рдЕрдкрд▓реЛрдб рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдкреИрдХреЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

  _socket.connectToHost(_serverAddr, 9876); _socket.waitForConnected(); QByteArray arr; arr.append("proto=pastexen\n"); arr.append("version=0.2\n"); arr.append("type=" + type + "\n"); arr.append(QString("size=%1\n\n").arg(data.size())); arr.append(data); _socket.write(arr); 


рдЬреИрд╕реЗ рд╣реА рд╣рдореЗрдВ рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рд╣рдо рдЙрд╕рд╕реЗ рд▓рд┐рдВрдХ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд▓рд┐рдВрдХ рдХреЛ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред

  const QByteArray arr = _socket.readAll(); const QString link = getValue(arr, "url"); emit linkReceived(link); _socket.disconnectFromHost(); 


рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рдкреНрд░рд╛рдкреНрдд рд▓рд┐рдВрдХ рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рдЯреНрд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ:

 QApplication::clipboard()->setText(link); _trayIcon->showMessage(tr("Done!"), tr("File shared!"), QSystemTrayIcon::Information, 6500); 


рдЗрд╕реА рддрд░рд╣, рд╕реЛрд░реНрд╕ рдХреЛрдб рднреЗрдЬрдирд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб


Qt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдбреЗрдореЙрди рднреА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдордиреЗ рд▓реЛрдб рдХреЗ рддрд╣рдд рдкрд░рд┐рдгрд╛рдореА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ (1000 рдПрдХ рд╕рд╛рде рдкреНрд░реЗрд╖рд┐рдд рдлрд╛рдЗрд▓реЗрдВ) рдФрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛ред

рд╕рд░реНрд╡рд░ рдереНрд░реЗрдб рдкреВрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╕рднреА рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЙрдкрд▓рдмреНрдз рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рднреА рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:



рд╕рд░реНрд╡рд░ рд╡рд░реНрдЧ рдореЗрдВ, рдПрдХ tcp рд╕рд░реНрд╡рд░ (QTcpServer) рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирдП рдХрдиреЗрдХреНрд╢рди рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрдиреЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реЙрдХреЗрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдереНрд░реЗрдбрдкреВрд▓_ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 auto socket = _server.nextPendingConnection(); new Socket(socket, ThreadPool::getNextThread(), it.value()); 


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред
рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рдЗрд╕реЗ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдирд┐рд╖реНрдкрд╛рджрди рдереНрд░реЗрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдЗрд╕ рд╡рд░реНрдЧ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЗрд╡реЗрдВрдЯ-рд▓реВрдк_ рдореЗрдВ рд╣реЛрдЧрд╛, рджреВрд╕рд░реЗ рдереНрд░реЗрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, MoveToThread рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЖрд╡рдХ рдбреЗрдЯрд╛ рдХреЛ рд╕реЙрдХреЗрдЯ рдХреЗ рдЕрдВрджрд░ рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд (рдЗрдорд┐рде рд╕реЗрд╡рдлрд╛рдЗрд▓) рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд╕реЗрд╡рд░ рдХреНрд▓рд╛рд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдереНрд░реЗрдб рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реЗрд╡рд░ рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╕реЗрд╡ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬреЗрдЧрд╛ рдЬреЛ рд╕реЙрдХреЗрдЯ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдлрд╛рдЗрд▓ рдХрд╛ рд▓рд┐рдВрдХ рднреЗрдЬрддрд╛ рд╣реИред

рд╣реЛрд╕реНрдЯрд┐рдВрдЧ


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдУрдкрди-рд╕реЛрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рдФрд░ рдЬрдм рд╡рд╣ рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛, рддреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛ рд▓реЗрдХрд░ рд╕рд╡рд╛рд▓ рдЙрдардиреЗ рд▓рдЧрд╛ред рдЬрд┐рд╕ рдЪреАрдЬ рдХреА рдЬрд░реВрд░рдд рдереА, рд╡рд╣ рдереА рдХреБрдЫ рднрд░реЛрд╕реЗрдордВрдж рд╣рдЧрд┐рдВрдЧ рдЬреЛ рдХрд┐ рд╣рдмреНрдмрд░рдлреИрдХреНрдЯ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреА рдереАред рдпрд╣ рднреА рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреМрди рднреБрдЧрддрд╛рди рдХрд░реЗрдЧрд╛ рдФрд░ рдХреНрдпрд╛ рд╣рдо (рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ) рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реБрдП рдердХ рдЧрдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдХрдИ рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдкрддреНрд░ рднреЗрдЬреЗред рдХрдИ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдХреНрд▓рд╛рдЙрдб рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдиреА Skalaksi рдкрд░ рдЖ рдЧрдПред

рдбреЗрдмрд┐рдпрди, рдирдЧреАрдиреЗрдХреНрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрд░рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдореЛрдирд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреБрдирд░рд╛рд░рдВрдн рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рднрд╡рд┐рд╖реНрдп рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛


рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:



рд╕рдВрджрд░реНрдн


pastexen.com - рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ
github.com/bakwc/Pastexen - github рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб
scalaxy.ru - рдХрдВрдкрдиреА "Skalaksi", рдЬрд┐рд╕рдиреЗ рдХреНрд▓рд╛рдЙрдб рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдерд╛

Source: https://habr.com/ru/post/In165647/


All Articles