Sebastien_Lachance写了一个名为NDK (Network Development Kit 2.0) 的小工具,可以方便的开发客户服务器程序。提供了一个服务器、客户端的框架,基于MFC的CSocket的,不足的是只支持单线程,多线程也不安全。NDK隐藏了基于网络开发的复杂性,只用和3个类进行交互:CNDKServer、CNDKClient、CNDKMessage。先简单看下这些类:
CNDKServer
Attributes:
· BOOL IsStarted() const;
· long GetPort() const;
· long GetNbUsers() const;
· void GetUserIds(CLongArray& alIds) const;
Operations:
· BOOL StartListening(long lPort);
· void Stop();
· BOOL SendMessageToUser(long lUserId, CNDKMessage& message);
· BOOL SendMessageToAllUsers(CNDKMessage& message);
· BOOL SendMessageToSomeUsers(const CLongArray& alUserIds, CNDKMessage& message);
· BOOL SendMessageToAllUsersExceptFor(long lUserId, CNDKMessage& message);
· BOOL SendMessageToAllUsersExceptFor(const CLongArray& alUserIds, CNDKMessage& message);
· BOOL DisconnectUser(long lUserId);
· void DisconnectAllUsers();
· BOOL PingUser(long lUserId);
· void PingAllUsers();
Callbacks:
· virtual BOOL OnIsConnectionAccepted() = 0;
· virtual void OnConnect(long lUserId) = 0;
· virtual void OnMessage(long lUserId,