服务器效果截图:
客户端效果截图:
1. 创建控制台项目,导入SuperSocket.Common、SuperSocket.SocketBase、SuperSocket.SocketEngine并添加好引用
2. 在控制台项目中添加Config文件夹及SuperSocket提供的log4net配置文件
3. 添加using引用
- using SuperSocket.Common;
- using SuperSocket.SocketBase;
- using SuperSocket.SocketEngine;
- using SuperSocket.SocketBase.Protocol;
4. Main方法添加代码:
- var appServer = new AppServer();
-
-
- int port = 2000;
-
-
- if (!appServer.Setup(port))
- {
- Console.WriteLine("端口设置失败!");
- Console.ReadKey();
- return;
- }
-
-
- appServer.NewSessionConnected += new SessionHandler<AppSession>(NewSessionConnected);
-
-
- appServer.NewRequestReceived += new RequestHandler<AppSession, StringRequestInfo>(NewRequestReceived);
-
-
- appServer.SessionClosed += new SessionHandler<AppSession, CloseReason>(SessionClosed);
-
-
- if (!appServer.Start())
- {
- Console.WriteLine("启动服务失败!");
- Console.ReadKey();
- return;
- }
-
- Console.WriteLine("启动服务成功,输入exit退出!");
-
- while (true)
- {
- var str = Console.ReadLine();
- if (str.ToLower().Equals("exit"))
- {
- break;
- }
- }
-
- Console.WriteLine();
-
-
- appServer.Stop();
-
- Console.WriteLine("服务已停止,按任意键退出!");
- Console.ReadKey();
5. 添加事件对应方法
- static void NewSessionConnected(AppSession session)
- {
-
- session.Send("Hello User!");
- }
-
- static void NewRequestReceived(AppSession session, StringRequestInfo requestInfo)
- {
-
-
-
-
-
-
-
-
- switch (requestInfo.Key.ToUpper())
- {
- case ("HELLO"):
- session.Send("Hello World!");
- break;
-
- default:
- session.Send("未知的指令。");
- break;
- }
- }
-
- static void SessionClosed(AppSession session, CloseReason reason)
- {
-
- }
6.备注:
(1).在SuperSocket.Base中,需要将引用中的log4net属性做如下修改:
(2).客户端可以使用 telnet 地址 端口连接: