SuperSocket学习笔记(一)-一个完整的例子
一、什么是SuperSocket
以下是作者的介绍

执行以下命令,获取SuperSocket项目
$ git clone https://github.com/kerryjiang/SuperSocket
二、项目结构

三、开发过程
1.新建一个控制台项目ConsoleApp
1.1引用相关项目

1.2从Solution Items中引进日志文件

1.3设置SuperSocket.SocketBase45的log4net文件属性设置为【复制到本地】

2.编写Main方法
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using SuperSocket.SocketBase;
7
8 namespace ConsoleApp
9 {
10 class Program
11 {
12 static void Main(string[] args)
13 {
14 var appServer = new AppServer();
15 int port = 8888;
16 if (!appServer.Setup(port))
17 {
18 Console.WriteLine("端口设置失败");
19 Console.ReadKey();
20 return;
21 }
22 //连接时
23 appServer.NewSessionConnected += appServer_NewSessionConnected;
24 //接收信息时
25 appServer.NewRequestReceived += appServer_NewRequestReceived;
26 //关闭服务时
27 appServer.SessionClosed += appServer_SessionClosed;
28 if (!appServer.Start())
29 {
30 Console.WriteLine("启动服务失败");
31 Console.ReadKey();
32 return;
33 }
34 Console.WriteLine("服务启动成功,输入q退出");
35
36 while (true)
37 {
38 var str = Console.ReadLine();
39 if (str.ToLower().Equals("q"))
40 {
41 break;
42 }
43 }
44 Console.WriteLine();
45 appServer.Stop();
46 Console.WriteLine("服务已停止,按任意键退出");
47 Console.ReadKey();
48 }
49
50 private static void appServer_NewSessionConnected(AppSession session)
51 {
52 session.Send("Hello World!");
53 }
54
55 static void appServer_NewRequestReceived(AppSession session, SuperSocket.SocketBase.Protocol.StringRequestInfo requestInfo)
56 {
57 switch (requestInfo.Key.ToLower())
58 {
59 case "1":
60 session.Send("You input 1");
61 break;
62 case "2":
63 session.Send("You input 2");
64 break;
65 default:
66 session.Send("Unknow ");
67 break;
68 }
69 }
70
71 static void appServer_SessionClosed(AppSession session, CloseReason value)
72 {
73 session.Send("服务已关闭");
74 }
75 }
76 }
77
3.运行项目,使用Telnet为客户端


四.接下来就是看源码一步一步调试了
SuperSocket学习笔记(一)-一个完整的例子的更多相关文章
- WCF学习笔记(1)-一个完整的例子
一.开发环境 IDE:VS2013 OS:Win10 IIS:IIS 10 二.开发流程 1.项目结构 2.添加一个WCF程序 3.删除系统自动生成的两个文件IService1.cs和Service1 ...
- nodejs入门学习笔记一——一个完整的http路由服务实现
开始学习nodejs! 参考书籍:The Node Beginner Book ,所有问题和讨论都围绕本书. 1.学习nodejs需要具备的基础知识: js基本语法,基本上写过前端的都能满足,原生js ...
- DirectX11 学习笔记4 - 一个完整的封装框架
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3EzNjExMDYzMDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- SuperSocket学习笔记(二)
上一篇博客SuperSocket学习笔记(一)说明了怎么快速搭建一个服务器端,这篇文章我想深挖一下SuperSocket 1. 每一个客户端连接到服务器端时,服务器端会将客户端的信息保存到一个Sess ...
- 《Java从入门到失业》第四章:类和对象(4.3):一个完整的例子带你深入类和对象
4.3一个完整的例子带你深入类和对象 到此为止,我们基本掌握了类和对象的基础知识,并且还学会了String类的基本使用,下面我想用一个实际的小例子,逐步来讨论类和对象的一些其他知识点. 4.3.1需求 ...
- Access应用笔记<四>-一个完整的自动化报表搭建过程
距离之前的三篇日志已经很久啦,今天终于完成了一个比较完整的自动化报表搭建过程 基于公司数据保密原则,样板就不放到网上来了,简单说一下背景: 这次access实现的功能包括: 1)为部门整体搭建了一个员 ...
- 【Unity 3D】学习笔记29:游戏的例子——简单的小制作地图
无论学习.只看不练是坏科学. 因此,要总结回想这怎么生产MMROPG小地图的游戏.于MMROPG游戏类,在游戏世界中行走时导致各地,通常在屏幕的右上角,将有一个区域,以显示当前的游戏场景微缩.在游戏世 ...
- 多线程编程学习笔记——编写一个异步的HTTP服务器和客户端
接上文 多线程编程学习笔记——使用异步IO 二. 编写一个异步的HTTP服务器和客户端 本节展示了如何编写一个简单的异步HTTP服务器. 1.程序代码如下. using System; using ...
随机推荐
- springboot + mybatis 完成图片上传并保存到数据库
添加依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons- ...
- Java高级教程:Java并发性和多线程
Java并发性和多线程: (中文,属于人工翻译,高质量):http://ifeve.com/java-concurrency-thread-directory/ (英文):http://tutoria ...
- 【SQL Server 学习系列】-- SQL查询数据库表字段值不为空或Null的所有列
) set @TableName = 'Agency' -- 表名 declare @querySql nvarchar(max) set @querySql = 'select ' ) declar ...
- java多线程断点下载原理(代码实例演示)
原文:http://www.open-open.com/lib/view/open1423214229232.html 其实多线程断点下载原理,很简单的,那么我们就来先了解下,如何实现多线程的断点下载 ...
- HDU 1051 Wooden Sticks 贪心题解
本题一看就知道是最长不减序列了,一想就以为是使用dp攻克了. 只是那是个错误的思路. 我就动了半天没动出来.然后看了看别人是能够使用dp的,只是那个比較难证明其正确性,而其速度也不快.故此并非非常好的 ...
- 赵雅智_Android的getResources()资源引用
今天做一个Android的刮刮乐项目.里面用到非常多的地方用到了getResources. <span style="font-size:12px;"> // 获得图片 ...
- Websphere优化 (四个方面)举例
Websphere优化 一.简单介绍 环境 名称 版本号 server操作系统 Centos 5.6 应用server操作系统 Windows 7 Websphere版本号 WAS 7.0 数据库 O ...
- Linux改动/etc/profile配置错误command is not found自救方法
我的CSDN博客地址: http://blog.csdn.net/caicongyang 博主之前在改动了/etc/profile配置文件方法后,导致bash命令无法用 运行ls命令结果例如以下: - ...
- Oracle442个应用场景---------PL/SQL基础
----------------------------------------------------------------------------------- 备份和恢复数据库略过.在后面解说 ...
- UVA 1397 - The Teacher's Side of Math(高斯消元)
UVA 1397 - The Teacher's Side of Math 题目链接 题意:给定一个x=a1/m+b1/n.求原方程组 思路:因为m*n最多20,全部最高项仅仅有20.然后能够把每一个 ...