?? main.cpp
字號(hào):
#include <iostream.h> // 使用控制臺(tái)程序
#include "TelnetServer.h"
int main()
{
int nListen, // 監(jiān)測(cè)服務(wù)器的監(jiān)聽錯(cuò)誤
nPort, // 服務(wù)器端口
nMaxConnects; // 最大連接數(shù)
MESSAGE mMsg; // 存儲(chǔ)客戶端發(fā)送的消息
USER uInfo;
TelnetServer tServ; // 主控制類
char cChat[9999]; // 存儲(chǔ)聊天內(nèi)容
char *cText,*cText2,cInt[5];
cout<<"---- 服務(wù)器已啟動(dòng)----"<<endl<<endl;
// 得到服務(wù)器的監(jiān)聽端口
cout<<"請(qǐng)輸入監(jiān)聽端口號(hào)(不能小于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; }
// 設(shè)置客戶連接消息
cChat[0] = 0;
cText = &cChat[0];
strcat(cText, "你已經(jīng)成功連接到服務(wù)器端!");
cInt[0] = (char) 13;
cInt[1] = (char) 10;
cInt[2] = 0;
strcat(cText, &cInt[0]);
cText2 = "服務(wù)器已滿,請(qǐng)稍后再試!";
// 發(fā)送服務(wù)器信息到服務(wù)器類
tServ.setServer(nPort, nMaxConnects, cText, cText2);
// 開始監(jiān)聽連接
nListen = tServ.startListen();
if (nListen == -1)
{
cout<<"服務(wù)器無法在指定的端口負(fù)責(zé)監(jiān)聽! (PORT: "<<nPort<<")."<<endl;
return 0;
}
cout<<endl<<"--服務(wù)器已經(jīng)開始運(yùn)行--"<<endl<<endl;
while (1)
{
// 接受連接(如果有)
tServ.acceptConnects();
// 接受到來的消息(如果有)
tServ.acceptMessages();
// 得到第一個(gè)消息
mMsg = tServ.getMessage();
// 消息不為空
if (mMsg.cMsg[0] != 0)
{
// 得到客戶端反饋的消息
uInfo = tServ.getUserInfo(mMsg.nUser);
// 格式化該消息
cChat[0] = 0;
cText = &cChat[0];
strcat(cText, "From 客戶端 (編號(hào): ");
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]);
// 發(fā)送該消息到所有的連接用戶
tServ.sendAll(cText);
}
// 釋放和已經(jīng)斷開的客戶端的連接的socket
tServ.closeEmptySockets();
}
// 關(guān)閉監(jiān)聽端口
tServ.stopListen();
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -