www.gusucode.com > Telnet协定远端登陆VC源代码-源码程序 > Telnet协定远端登陆VC源代码-源码程序/code/TelnetChatServer/TelnetChatServer/main.cpp

    //Download by http://www.NewXing.com
#include <iostream.h>		// ㄏノ北祘Α
#include "TelnetServer.h"	

int main()
{
	int nListen,		// 菏代狝竟菏钮岿粇
		nPort,			// 狝竟狠
		nMaxConnects;	// 程硈钡计
	MESSAGE mMsg;		// 纗め狠祇癳
	USER uInfo;			
	TelnetServer tServ;	// 北摸
	char cChat[9999];	// 纗册ぱず甧
	char *cText,*cText2,cInt[5];	


	cout<<"---- 狝竟币笆----"<<endl<<endl;

	// 眔狝竟菏钮狠
	cout<<"叫块菏钮狠腹(ぃ23): ";
	cin>>nPort;
	if (nPort < 23) { nPort = 23; }

	// 眔程す砛硈钡
	cout<<"Max Clients (1-100): ";
	cin>>nMaxConnects;
	if (nMaxConnects < 1) { nMaxConnects = 1; }
	if (nMaxConnects > 100) { nMaxConnects = 100; }

	// 砞﹚め硈钡
	cChat[0] = 0;
	cText = &cChat[0];
	strcat(cText, "竒Θ硈钡狝竟狠!");
	cInt[0] = (char) 13;
	cInt[1] = (char) 10;
	cInt[2] = 0;
	strcat(cText, &cInt[0]);
	cText2 = "狝竟骸叫祔刚!";

	// 祇癳狝竟癟狝竟摸
	tServ.setServer(nPort, nMaxConnects, cText, cText2);

	// 秨﹍菏钮硈钡
	nListen = tServ.startListen();
	if (nListen == -1)	
	{
		cout<<"狝竟礚猭﹚狠璽砫菏钮! (PORT: "<<nPort<<")."<<endl;
		return 0;
	}

	cout<<endl<<"--狝竟竒秨﹍犁笲--"<<endl<<endl;
	while (1)
	{
		// 钡硈钡(狦Τ)
		tServ.acceptConnects();
		// 钡ㄓ(狦Τ)
		tServ.acceptMessages();	
		// 眔材
		mMsg = tServ.getMessage();									
		// ぃ
		if (mMsg.cMsg[0] != 0)
		{
			// 眔め狠鮔
			uInfo = tServ.getUserInfo(mMsg.nUser);		
			
			// Αて赣
			cChat[0] = 0;
			cText = &cChat[0];
			strcat(cText, "From め狠 (絪腹: ");
			cInt[0] = 0;
			_itoa(mMsg.nUser, cInt, 10);
			strcat(cText, &cInt[0]);
			strcat(cText, ") (IP: ");
			strcat(cText, inet_ntoa(uInfo.user_sin.sin_addr));
			strcat(cText, ") (Port: ");
			cInt[0] = 0;
			_itoa((int) ntohs(uInfo.user_sin.sin_port), cInt, 10);
			strcat(cText, &cInt[0]);
			strcat(cText, "): ");
			strcat(cText, &mMsg.cMsg[0]);

			cout<<cText<<endl;										

			// ソЮ睰传︽㎝
			cInt[0] = (char) 13;
			cInt[1] = (char) 10;
			cInt[2] = 0;
			strcat(cText, &cInt[0]);

			// 祇癳赣┮Τ硈钡ノめ
			tServ.sendAll(cText);									
		}

		// 睦㎝竒耞秨め狠硈钡socket
		tServ.closeEmptySockets();									
	}

	// 闽超菏钮狠
	tServ.stopListen();												
	return 0;										
}