mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-07-16 05:47:11 +02:00
.github
bin
module
vendor
CPR
CivetWeb
ConcurrentQueue
Fmt
MDBC
MaxmindDB
POCO
ActiveRecord
ApacheConnector
CppParser
CppUnit
Crypto
Data
Encodings
Foundation
JSON
JWT
MongoDB
Net
cmake
include
samples
src
testsuite
src
DNSTest.cpp
DNSTest.h
DatagramSocketTest.cpp
DatagramSocketTest.h
DialogServer.cpp
DialogServer.h
DialogSocketTest.cpp
DialogSocketTest.h
Driver.cpp
EchoServer.cpp
EchoServer.h
FTPClientSessionTest.cpp
FTPClientSessionTest.h
FTPClientTestSuite.cpp
FTPClientTestSuite.h
FTPStreamFactoryTest.cpp
FTPStreamFactoryTest.h
HTMLFormTest.cpp
HTMLFormTest.h
HTMLTestSuite.cpp
HTMLTestSuite.h
HTTPClientSessionTest.cpp
HTTPClientSessionTest.h
HTTPClientTestSuite.cpp
HTTPClientTestSuite.h
HTTPCookieTest.cpp
HTTPCookieTest.h
HTTPCredentialsTest.cpp
HTTPCredentialsTest.h
HTTPRequestTest.cpp
HTTPRequestTest.h
HTTPResponseTest.cpp
HTTPResponseTest.h
HTTPServerTest.cpp
HTTPServerTest.h
HTTPServerTestSuite.cpp
HTTPServerTestSuite.h
HTTPStreamFactoryTest.cpp
HTTPStreamFactoryTest.h
HTTPTestServer.cpp
HTTPTestServer.h
HTTPTestSuite.cpp
HTTPTestSuite.h
ICMPClientTest.cpp
ICMPClientTest.h
ICMPClientTestSuite.cpp
ICMPClientTestSuite.h
ICMPSocketTest.cpp
ICMPSocketTest.h
IPAddressTest.cpp
IPAddressTest.h
MailMessageTest.cpp
MailMessageTest.h
MailStreamTest.cpp
MailStreamTest.h
MailTestSuite.cpp
MailTestSuite.h
MediaTypeTest.cpp
MediaTypeTest.h
MessageHeaderTest.cpp
MessageHeaderTest.h
MessagesTestSuite.cpp
MessagesTestSuite.h
MulticastEchoServer.cpp
MulticastEchoServer.h
MulticastSocketTest.cpp
MulticastSocketTest.h
MultipartReaderTest.cpp
MultipartReaderTest.h
MultipartWriterTest.cpp
MultipartWriterTest.h
NTLMCredentialsTest.cpp
NTLMCredentialsTest.h
NTPClientTest.cpp
NTPClientTest.h
NTPClientTestSuite.cpp
NTPClientTestSuite.h
NameValueCollectionTest.cpp
NameValueCollectionTest.h
NetCoreTestSuite.cpp
NetCoreTestSuite.h
NetTestSuite.cpp
NetTestSuite.h
NetworkInterfaceTest.cpp
NetworkInterfaceTest.h
OAuth10CredentialsTest.cpp
OAuth10CredentialsTest.h
OAuth20CredentialsTest.cpp
OAuth20CredentialsTest.h
OAuthTestSuite.cpp
OAuthTestSuite.h
POP3ClientSessionTest.cpp
POP3ClientSessionTest.h
PollSetTest.cpp
PollSetTest.h
QuotedPrintableTest.cpp
QuotedPrintableTest.h
RawSocketTest.cpp
RawSocketTest.h
ReactorTestSuite.cpp
ReactorTestSuite.h
SMTPClientSessionTest.cpp
SMTPClientSessionTest.h
SocketAddressTest.cpp
SocketAddressTest.h
SocketReactorTest.cpp
SocketReactorTest.h
SocketStreamTest.cpp
SocketStreamTest.h
SocketTest.cpp
SocketTest.h
SocketsTestSuite.cpp
SocketsTestSuite.h
SyslogTest.cpp
SyslogTest.h
TCPServerTest.cpp
TCPServerTest.h
TCPServerTestSuite.cpp
TCPServerTestSuite.h
UDPEchoServer.cpp
UDPEchoServer.h
UDPServerTest.cpp
UDPServerTest.h
UDPServerTestSuite.cpp
UDPServerTestSuite.h
WebSocketTest.cpp
WebSocketTest.h
WebSocketTestSuite.cpp
WebSocketTestSuite.h
WinCEDriver.cpp
WinDriver.cpp
CMakeLists.txt
Makefile
TestSuite.progen
TestSuite_vs140.vcxproj
TestSuite_vs140.vcxproj.filters
TestSuite_vs150.vcxproj
TestSuite_vs150.vcxproj.filters
TestSuite_vs160.vcxproj
TestSuite_vs160.vcxproj.filters
TestSuite_vs90.vcproj
CMakeLists.txt
Makefile
Net.progen
Net_vs140.sln
Net_vs140.vcxproj
Net_vs140.vcxproj.filters
Net_vs150.sln
Net_vs150.vcxproj
Net_vs150.vcxproj.filters
Net_vs160.sln
Net_vs160.vcxproj
Net_vs160.vcxproj.filters
Net_vs90.sln
Net_vs90.vcproj
dependencies
NetSSL_OpenSSL
NetSSL_Win
PDF
PageCompiler
PocoDoc
ProGen
Redis
SevenZip
Util
XML
Zip
build
ci
cmake
contrib
doc
packaging
patches
release
.gitattributes
.gitignore
.gitmodules
CHANGELOG
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTORS
LICENSE
Makefile
NEWS
README
README.md
VERSION
build_cmake.cmd
build_cmake.sh
build_vs140.cmd
build_vs150.cmd
build_vs160.cmd
buildwin.cmd
buildwin.ps1
components
configure
cppignore.lnx
cppignore.win
env.bat
env.sh
libversion
PUGIXML
RPMalloc
SAJSON
SimpleIni
Squirrel
TinyDir
UTF8
ZMQ
xxHash
CMakeLists.txt
.gitignore
.gitmodules
CMakeLists.txt
LICENSE
README.md
Switched to POCO library for unified platform/library interface. Deprecated the external module API. It was creating more problems than solving. Removed most built-in libraries in favor of system libraries for easier maintenance. Cleaned and secured code with help from static analyzers.
84 lines
1.4 KiB
C++
84 lines
1.4 KiB
C++
//
|
|
// UDPEchoServer.cpp
|
|
//
|
|
// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#include "UDPEchoServer.h"
|
|
#include "Poco/Net/SocketAddress.h"
|
|
#include "Poco/Timespan.h"
|
|
#include <iostream>
|
|
|
|
|
|
using Poco::Net::Socket;
|
|
using Poco::Net::DatagramSocket;
|
|
using Poco::Net::SocketAddress;
|
|
using Poco::Net::IPAddress;
|
|
|
|
|
|
UDPEchoServer::UDPEchoServer():
|
|
_thread("UDPEchoServer"),
|
|
_stop(false)
|
|
{
|
|
_socket.bind(SocketAddress(), true);
|
|
_thread.start(*this);
|
|
_ready.wait();
|
|
}
|
|
|
|
|
|
UDPEchoServer::UDPEchoServer(const SocketAddress& sa):
|
|
_thread("UDPEchoServer"),
|
|
_stop(false)
|
|
{
|
|
_socket.bind(sa, true);
|
|
_thread.start(*this);
|
|
_ready.wait();
|
|
}
|
|
|
|
|
|
UDPEchoServer::~UDPEchoServer()
|
|
{
|
|
_stop = true;
|
|
_thread.join();
|
|
}
|
|
|
|
|
|
Poco::UInt16 UDPEchoServer::port() const
|
|
{
|
|
return _socket.address().port();
|
|
}
|
|
|
|
|
|
void UDPEchoServer::run()
|
|
{
|
|
Poco::Timespan span(250000);
|
|
while (!_stop)
|
|
{
|
|
_ready.set();
|
|
if (_socket.poll(span, Socket::SELECT_READ))
|
|
{
|
|
try
|
|
{
|
|
char buffer[256];
|
|
SocketAddress sender;
|
|
int n = _socket.receiveFrom(buffer, sizeof(buffer), sender);
|
|
n = _socket.sendTo(buffer, n, sender);
|
|
}
|
|
catch (Poco::Exception& exc)
|
|
{
|
|
std::cerr << "UDPEchoServer: " << exc.displayText() << std::endl;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
SocketAddress UDPEchoServer::address() const
|
|
{
|
|
return _socket.address();
|
|
}
|