一段网络的通信的代码,怎么做单元测试?(代码如下)

本人使用的是cppunit框架,代码如下:
想对这个Worker函数进行单元测试,说明:Worker是在一个线程中执行的,Connect()是连接到服务器的代码,recv(...)是收取包头,即文件长度,ReceiveOnPackage是获取数据。问题是这段代码要在真实环境测试,那必须开启服务端,感觉这和单元测试要求的代码隔离有所违背(不知道自己说的对不对)。如果要模拟服务器端,那应该如何做了?求教,各位大牛,先谢谢了!

 void TcpClient::Worker()
{
while(!bQuit)
{
if (Connect())
{
timeval waiter;
waiter.tv_sec = 0;
waiter.tv_usec = 1000;
fd_set revicors;
FD_ZERO(&revicors);
FD_SET(m_socket,&revicors);
if (select(m_socket + 1,&revicors,0,0,&waiter) > 0 && FD_ISSET(m_socket,&revicors))
{
int length = 0;
int bytesRecv = recv(m_socket,(char*)&length,sizeof(length),0);
if (bytesRecv <= 0 || !ReceiveOnPackage(length))
{
if (bytesRecv == SOCKET_ERROR)
{
DWORD code = WSAGetLastError();
log.handle(ResolveError(code));
}
if (!CloseHandler())
{
break;
}
}
}
}
}
}

自己做一个桩程序模拟服务器,比如会返回固定格式的一个数据。

用mock框架模拟服务器端。