创建套接字并返回SocketHandler 状态

2013年6月8日 由 Creater 留言 »

服务器端在新的连接建立时,会调用OnAccept(),所以可以在这个函数里添加信息。

#ifndef _STATUSSOCKET_H
#define _STATUSSOCKET_H

#include <TcpSocket.h>
#include <ISocketHandler.h>


class StatusSocket : public TcpSocket
{
public:
	StatusSocket(ISocketHandler& );

	void OnAccept();

};


#endif // _STATUSSOCKET_H
#include <Utility.h>
#include "StatusSocket.h"


StatusSocket::StatusSocket(ISocketHandler& h)
:TcpSocket(h)
{
}


void StatusSocket::OnAccept()
{
	Send("Local hostname : " + Utility::GetLocalHostname() + "\n");
	Send("Local address : " + Utility::GetLocalAddress() + "\n");
	Send("Number of sockets in list : " + Utility::l2string(Handler().GetCount()) + "\n");
	Send("\n");
}
#include <SocketHandler.h>
#include <ListenSocket.h>

#include "StatusSocket.h"


static	bool quit = false;

int main()
{
	SocketHandler h;
	ListenSocket<StatusSocket> l(h);

	if (l.Bind(9002))
	{
		exit(-1);
	}
	Utility::ResolveLocal(); // resolve local hostname
	h.Add(&l);
	h.Select(1,0);
	while (!quit)
	{
		h.Select(1,0);
	}
}
广告位

发表评论

你必须 登陆 方可发表评论.