SpiecsEngine
 
Loading...
Searching...
No Matches

◆ StartServer()

static void SpicesTest::BufferTest::StartServer ( const Spices::Net::InetAddress & address)
inlinestatic

Create Server.

Parameters
[in]addressServer address.

Definition at line 23 of file Buffer_test.h.

24 {
25 Spices::Net::Socket serverSocket;
26 serverSocket.Create();
27
28 serverSocket.BindAddress(address);
29 serverSocket.Listen();
30
31 Spices::Net::InetAddress peerAddress;
32 Spices::Net::Socket clientSocket(serverSocket.Accept(&peerAddress));
33
35 int error;
36 for (int i = 0; i < 100; i++)
37 {
38 buffer.ReadFd(clientSocket.Fd(), &error);
39
40 std::stringstream ss0;
41 ss0 << "Hello Client! " << i;
42
43 EXPECT_STREQ(buffer.RetrieveAllAsString().c_str(), ss0.str().c_str());
44
45 std::stringstream ss1;
46 ss1 << "Hello Server! " << i;
47
48 buffer.Append(ss1.str());
49 buffer.WriteFd(clientSocket.Fd(), &error);
50 buffer.RetrieveAll();
51 }
52 }
std::string RetrieveAllAsString()
Get readable area data as string.
Definition Buffer.h:96
size_t WriteFd(SOCKET fd, int *saveErrno) const
Write to Socket.
Definition Buffer.cpp:72
size_t ReadFd(SOCKET fd, int *saveErrno)
Read from Socket.
Definition Buffer.cpp:53
void RetrieveAll()
Retrieve all buffer data.
Definition Buffer.h:87
void Append(const std::string &msg)
Append Message to this buffer.
Definition Buffer.cpp:41
Wrapper of readwrite buffer.
Definition Buffer.h:19
This class is Wrapper of current socket address.
Definition InetAddress.h:22
SOCKET Accept(InetAddress *peerAddress) const
Accept connection on socket.
Definition Socket.cpp:83
void BindAddress(const InetAddress &localAddress) const
Bind address to socket.
Definition Socket.cpp:36
void Create()
Create Non Blocking Socket.
Definition Socket.cpp:27
void Listen() const
Listen on socket.
Definition Socket.cpp:49
This class is Wrapper of socket.
Definition Socket.h:18

References Spices::Net::Socket::BindAddress(), Spices::Net::Socket::Create(), Spices::Net::Socket::Listen(), and Spices::Net::Buffer::RetrieveAll().

Referenced by SpicesTest::TEST().