SuperSocket框架学习笔记2-构建SuperWebSocket服务器程序
来源:互联网 发布:听歌学英文软件 编辑:程序博客网 时间:2024/06/05 21:13
上一节简单介绍了 基本的SuperSocket服务器
这一节我们使用 SuperWebSocket构建一个 能与Unity3D通信的(Console控制台)服务器程序
嘎嘎
先下载 需要的 DLL类库
服务端:
SuperSocket1.6.1 这个必备
http://www.supersocket.net/
SuperWebSocket 服务端必备
http://superwebsocket.codeplex.com/
客户端:
WebSocket4Net 客户端必备
http://websocket4net.codeplex.com/
一,让我们来编写服务器程序
1,打开VS2012,新建一个控制台应用程序,选择.NET4.0版本
2,添加引用
SuperSocket的dll文件(
SuperSocket.Common.dll,
SuperSocket.SocketBase.dll,
SuperSocket.SocketEngine.dll)到此项目的引用 (版本选4.0)
SuperWebSocket.dll 到此项目的引用
添加 系统的
System.Configuration;
System.Configuration.Install; 到此项目的引用
添加命名空间:
using SuperSocket.SocketBase;
using SuperWebSocket;
在Program中 写代码
直接上代码了 ,本人菜鸟, 写的渣渣,见笑了
static int ClientNum = 0; static void Main(string[] args) { Dictionary<string, Player> PlayerList = new Dictionary<string, Player>(); List<Player> Player__List = new List<Player>(); Console.WriteLine("SuperWebSocket(0.8).Source服务器\n 按任意键start the WebSocketServer!"); Console.ReadKey(); Console.WriteLine(); var appServer = new WebSocketServer(); //Setup the appServer if (!appServer.Setup(2000)) //Setup with listening port { Console.WriteLine("Failed to setup!"); Console.ReadKey(); return; } appServer.NewSessionConnected += new SessionHandler<WebSocketSession>(appServer_NewClientConnected); appServer.NewMessageReceived += new SessionHandler<WebSocketSession, string>(appServer_NewMessageReceived); appServer.SessionClosed += new SessionHandler<WebSocketSession, CloseReason>(appServer_SessionClosed); Console.WriteLine(); //Try to start the appServer if (!appServer.Start()) { Console.WriteLine("Failed to start!"); Console.ReadKey(); return; } Console.WriteLine("服务器启动成功, 按 'q' 退出服务器!"); while (Console.ReadKey().KeyChar != 'q') { Console.WriteLine(); continue; } //Stop the appServer appServer.Stop(); Console.WriteLine(); Console.WriteLine("The server was stopped!"); Console.ReadKey(); } static void appServer_NewClientConnected(WebSocketSession session) { session.Send("第一次给客户端发信息Unity3DServer: "); Player ps = new Player(session.SessionID); session.Send(MakeDataToString.PlayerString(ps)); Console.WriteLine("客户端 :端口" + session.RemoteEndPoint.Port + "连接到服务器了!"); ClientNum += 1; foreach (var ses in session.AppServer.GetAllSessions()) { ses.Send("xxx加入了游戏"); } } static void appServer_NewMessageReceived(WebSocketSession session, string message) { session.Send("欢迎登陆本系统LinMengUnity3DServer: "); Console.WriteLine("有客户端消息" + message); Console.WriteLine("客户端数目" + ClientNum.ToString()); foreach (var ses in session.AppServer.GetAllSessions()) { ses.Send("给所有客户端广播发送的消息LinMeng广播电台"); } } static void appServer_SessionClosed(WebSocketSession session, CloseReason closeRs) { session.Close(); Console.WriteLine("客户端" + session.RemoteEndPoint.Port + "断开了连接!"); ClientNum -= 1; Console.WriteLine("客户端数目" + ClientNum.ToString()); }
新建一个 Player类
public class Player { public string sessionID { get; set; } public string Name { get; set; } public float X { get; set; } public float Y { get; set; } public float Z { get; set; } public Player(string id) { this.sessionID = id; Name = sessionID.Substring(0, 6); X = -0.66666F; Y = 1.59666F; Z = 0; } }
新建一个 MakeDataToString类
public class MakeDataToString { public static string PlayerString(Player p) { return IDstr(p) + Namestr(p) + Xstr(p) + Ystr(p) + Zstr(p); } public static string IDstr(Player p) { return "<id>" + p.sessionID + "</id>"; } public static string Namestr(Player p) { return "<name>" + p.Name + "</name>"; } public static string Xstr(Player p) { return "<X>" + p.X + "</X>"; } public static string Ystr(Player p) { return "<Y>" + p.Y + "</Y>"; } public static string Zstr(Player p) { return "<Z>" + p.Z + "</Z>"; } }
如果没有错误,启动成功,你将看到
SuperWebSocket(0.8).Source服务器\n 按任意键start the WebSocketServer!
随便按一个键
出现
服务器启动成功, 按 'q' 退出服务器!
说明服务器启动成功,否则请检查代码,或命名空间引用
QQ:2360450496
SuperSocket官方QQ群:373076764
欢迎大家来一起研究开发这个Socket框架!
以上就是全部的 服务器程序代码,下一节我们将 编写Unity3D客户端程序,GOGOGO!
Coding!!!
- SuperSocket框架学习笔记2-构建SuperWebSocket服务器程序
- SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序
- SuperSocket框架学习笔记1-启动服务器
- SuperSocket服务器架设(二):使用SuperSocket构建简单服务器
- SuperSocket服务器架设(二):使用SuperSocket构建简单服务器
- SuperSocket 1.5 发布,.NET Socket服务器框架
- SuperSocket服务器架设(一):认识SuperSocket
- SuperSocket服务器架设(一):认识SuperSocket
- Socket 开发框架 SuperSocket
- supersocket开发笔记
- 《Linux高性能服务器编程》学习笔记——第八章 高性能服务器程序框架
- linux高性能服务器编程学习笔记七:高性能服务器程序框架
- 【ExtJs学习笔记】3.构建程序
- rcp学习笔记(-)-----程序框架
- C# SuperWebSocket服务端学习(二)
- C# SuperWebSocket服务端、客户端学习(三)
- C# SuperWebSocket服务端学习(二)
- C# SuperWebSocket服务端、客户端学习(三)
- nginx源码分析2———基础数据结构四(ngx_hash_t)
- 权限逻辑分析
- 如何制作一个ASP.NETMVC4信息发布网站
- SuperSocket框架学习笔记1-启动服务器
- 29-HTML-06-HTML(表格标签)
- SuperSocket框架学习笔记2-构建SuperWebSocket服务器程序
- SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序
- Android-SD卡文件夹创建和删除实现
- Unity3D碰撞后去掉相互之间的反弹力
- GoLang入门1-安装-配置
- GoLang入门2-GOPATH与工作空间
- GoLang入门3-应用目录结构
- GoLang入门4-编译应用mymath测试
- GoLang入门5-调试我们自己写的包mymath