SuperSocket框架学习笔记2-构建SuperWebSocket服务器程序
2015-08-11 20:11
274 查看
SuperSocket框架学习笔记2-构建SuperWebSocket服务器程序
上一节简单介绍了 基本的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中 写代码
直接上代码了 ,本人菜鸟, 写的渣渣,见笑了
新建一个 Player类
新建一个 MakeDataToString类
如果没有错误,启动成功,你将看到
SuperWebSocket(0.8).Source服务器\n 按任意键start the WebSocketServer!
随便按一个键
出现
服务器启动成功, 按 'q' 退出服务器!
说明服务器启动成功,否则请检查代码,或命名空间引用
QQ:2360450496
SuperSocket官方QQ群:373076764
欢迎大家来一起研究开发这个Socket框架!
以上就是全部的 服务器程序代码,下一节我们将 编写Unity3D客户端程序,GOGOGO!
Coding!!!
上一节简单介绍了 基本的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框架学习笔记1-启动服务器
- 如何制作一个ASP.NETMVC4信息发布网站
- 权限逻辑分析
- linux下qtcreator进行start debugging发生错误
- 29-HTML-06-HTML(表格标签)
- 乐观锁
- 三层架构
- 【剑指offer】树的子结构
- 面试-机试-编程题--剑指offer
- ORACLE EBS系统中FORM的编译
- Servlet与JSP
- C++/STL_利用remove_if 删除vector,list,deque满足条件的元素
- HDU 5375 Gray code(DP)
- 黑马程序员————网络编程
- 王家林亲授《DT大数据梦工厂》第84讲:Scala中List和ListBuffer设计实现思考
- Activity里面的UI模板自定义属性,更好的复用TextView,由于在网上没找到类似,记录下来。
- hdu 5379
- C语言的static关键字
- warning:deprecated conversion from string constant to 'char *'解决方案
- 1039. 到底买不买 (20) || 1092. To Buy or Not to Buy (20):map巧用