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 ...
随机推荐
- 计蒜客15430 XOR Queries(Trie处理位运算问题)
题意: 给出一个长度为n的数组C,回答m个形式为(L, R, A, B)的询问, 含义为存在多少个不同的数组下标k属于[L, R]满足C[k] XOR A >= B(式中XOR为异或运算). T ...
- JVM(二):Java中的语法糖
JVM(二):Java中的语法糖 上文讲到在语义分析中会对Java中的语法糖进行解糖操作,因此本文就主要讲述一下Java中有哪些语法糖,每个语法糖在解糖过后的原始代码,以及这些语法糖背后的逻辑. 语法 ...
- operamasks—omMessageBox的使用
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs&q ...
- Why It is so hard to explain or show some thing
Why it is hard to explain something or learn something? For example, when I first know the hadoop, I ...
- omnidazzle是mac的画笔工具
先使用命令 brew cask install omnidazzle 试试,不行参考下面: http://macappstore.org/omnidazzle/
- MicroPython实现wifi干扰与抓包
0×00前言 之前做的WIFI攻击实验都是基于arduino环境开发的,最近想尝试一下使用micropython完成deautch(解除认证)攻击.本次开发板使用的还是TPYBoardv202. 0× ...
- Python进阶系列之怎么写出pythonic的代码
使用 in/not in 检查key是否存在于字典中 判断某个key是否存在于字典中时,一般的初学者想到的方法是,先以列表的形式把字典所有的key返回,在判断该key是否存在于key列表中 d = { ...
- CCNA参考链接
http://www.cisco.com/c/en/us/support/docs/lan-switching/vtp/10558-21.html http://www.cisco.com/c/en/ ...
- 初探FFT在数字图像处理中的应用(fft2函数的用法)
初探FFT在数字图像处理中的应用 一般FFT在通信等领域都做的一维变换就能够了.可是在图像处理方面,须要做二维变换,这个时候就须要用到FFT2. 在利用Octave(或者matlab)里面的fft2( ...
- 【c语言】统计一个数字在排序数组中出现的次数
// 题目:统计一个数字在排序数组中出现的次数. // 比如:排序数组{1.2,3,3,3,3,4.5}和数字3,因为3出现了4次.因此输出4 有一种最简单的算法,遍历.可是有比它效率更高的 先看遍 ...