Add TCP support #12
@@ -41,6 +41,7 @@ class IOInterface<TcpTag> : private NonCopyable {
|
|||||||
IOInterface();
|
IOInterface();
|
||||||
IOInterface(const std::string& a_Host, std::uint16_t a_Port);
|
IOInterface(const std::string& a_Host, std::uint16_t a_Port);
|
||||||
IOInterface(IOInterface&& a_Other);
|
IOInterface(IOInterface&& a_Other);
|
||||||
|
IOInterface& operator=(IOInterface&& a_Other);
|
||||||
virtual ~IOInterface();
|
virtual ~IOInterface();
|
||||||
|
|
||||||
DataBuffer Read(std::size_t a_Amount);
|
DataBuffer Read(std::size_t a_Amount);
|
||||||
|
|||||||
@@ -91,7 +91,8 @@ DataBuffer TcpSocket::Read(std::size_t a_Amount) {
|
|||||||
std::size_t totalRecieved = 0;
|
std::size_t totalRecieved = 0;
|
||||||
|
|
||||||
while (totalRecieved < a_Amount) {
|
while (totalRecieved < a_Amount) {
|
||||||
int recvAmount = recv(m_Handle, reinterpret_cast<char*>(buffer.data() + totalRecieved), static_cast<int>(a_Amount - totalRecieved), 0);
|
int recvAmount =
|
||||||
|
recv(m_Handle, reinterpret_cast<char*>(buffer.data() + totalRecieved), static_cast<int>(a_Amount - totalRecieved), 0);
|
||||||
if (recvAmount <= 0) {
|
if (recvAmount <= 0) {
|
||||||
#if defined(_WIN32) || defined(WIN32)
|
#if defined(_WIN32) || defined(WIN32)
|
||||||
int err = WSAGetLastError();
|
int err = WSAGetLastError();
|
||||||
@@ -150,8 +151,10 @@ void TcpSocket::Disconnect() {
|
|||||||
m_Status = Status::Disconnected;
|
m_Status = Status::Disconnected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TcpSocket& TcpSocket::operator=(IOInterface&& a_Other) {
|
||||||
|
std::swap(m_Handle, a_Other.m_Handle);
|
||||||
|
std::swap(m_Status, a_Other.m_Status);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace io
|
} // namespace io
|
||||||
|
|
||||||
} // namespace sp
|
} // namespace sp
|
||||||
|
|||||||
Reference in New Issue
Block a user