C# SuperWebSocket服务端、客户端学习(三)
1、打开VS2012,新建一个windows窗体程序,选择.NET4.0版本
2、添加引用
SuperSocket的dll文件(
SuperSocket.Common.dll,
SuperSocket.SocketBase.dll,
SuperSocket.SocketEngine.dll)到此项目的引用 (版本选4.0)
SuperWebSocket.dll 到此项目的引用
添加 系统:
System.Configuration;
System.Configuration.Install; 到此项目的引用
3、具体代码实现如下所示(由于项目的特殊性,不能完全展示出来,请见谅):
(1)服务器端:
using SuperWebSocket;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
{
public partial class Form1 : Form
{
/// <summary>
///2016-8-2 服务器打开及接受消息
/// </summary>
///
{
Port = 2015,//set the listening port
MaxConnectionNumber = 10000
};
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if (!appServer.Setup(serverConfig)) //Setup the appServer
{
System.Windows.Forms.MessageBox.Show("开启服务器失败");
return;
}
{
System.Windows.Forms.MessageBox.Show("开启服务器失败");
return;
}
//注册事件
appServer.NewSessionConnected += appServer_NewSessionConnected;//客户端连接
appServer.NewMessageReceived += appServer_NewMessageReceived;//客户端接收消息
appServer.SessionClosed += appServer_SessionClosed;//客户端关闭
}
{
//session.Send("连接成功");
StringBuilder strBuilder = new StringBuilder();
strBuilder.Append("连接成功:" + "\n");
strBuilder.Append("Host:" + session.Host + ";");//服务器的ip
strBuilder.Append("Uri:" + session.UriScheme + ";");
strBuilder.Append("Path:" + session.Path + ";");
strBuilder.Append("CurrentToken:" + session.CurrentToken + ";");
strBuilder.Append("SessionID:" + session.SessionID + ";");
strBuilder.Append("Connection" + session.Connection + ";");
strBuilder.Append("Origin" + session.Origin + ";");
strBuilder.Append("LocalEndPoint" + session.LocalEndPoint + ";");
strBuilder.Append("RemoteEndPoint" + session.RemoteEndPoint);
void appServer_NewMessageReceived(WebSocketSession session, string message)
{
session.Send("服务端收到了客户端发来的消息");
//这里判断接收消息
//session.Send(message);//将消息发送到客户端
// SessionResponse.get().InitResponseJsonData(message); //解析数据(将数据保存到数据库中)
//WebSocketHelper.get().setWebSocketSession(session); //将这个session传给session
//调用发送消息的类
// SessionRequest.get().sendUserInfo();
void appServer_SessionClosed(WebSocketSession session, SuperSocket.SocketBase.CloseReason value)
{
sessionManager.Remove(session.SessionID.ToString());
session.Close();
}
}
}
(2)客户端(同样需要建立windows程序)
程序如下:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WebSocket4Net;
{
public partial class Form1 : Form
{
private WebSocket websocket = null;
private string strSendText = string.Empty;
public Form1()
{
InitializeComponent();
}
{
websocket = new WebSocket("ws://127.0.0.1:2015");
WebSocketHelper.get().setWebSocket(websocket);
websocket.Closed += websocket_Closed;
websocket.MessageReceived += websocket_MessageReceived;
websocket.Open();
}
{
//this.listBox1.Invoke(new EventHandler(ShowMessage), e.Message);
MessageReceivedEventArgs responseMsg = (MessageReceivedEventArgs)e; //接收服务端发来的消息
string strMsg = responseMsg.Message;
}
{
this.listBox1.Items.Add(sender.ToString());
}
{
//websocket.Send("一个客户端 下线");
}
{
//websocket.Send("一个客户端 上线");
}
{
//strSendText = textBox1.Text.ToString();
//websocket.Send(strSendText);
WebSocketRequestHelper.get().Register("18630635489", "123456");
}
}
C# SuperWebSocket服务端、客户端学习(三)的更多相关文章
- [精华][推荐]CAS SSO单点登录服务端客户端学习
1.通过下载稳定版本的方式下载cas的相关源码包,如下: 直接选择4.2.1的稳定代码即可 2.我们项目中的版本版本使用maven apereo远程库去下载 通过远程maven库下载cas-serve ...
- TCP/IP网络编程之基于UDP的服务端/客户端
理解UDP 在之前学习TCP的过程中,我们还了解了TCP/IP协议栈.在四层TCP/IP模型中,传输层分为TCP和UDP这两种.数据交换过程可以分为通过TCP套接字完成的TCP方式和通过UDP套接字完 ...
- TCP/IP网络编程之基于TCP的服务端/客户端(一)
理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字.因为TCP套接字是面向连接的,因此又称为基于流(stream)的套接字.TCP是Transmissi ...
- 手写内网穿透服务端客户端(NAT穿透)原理及实现
Hello,I'm Shendi. 这天心血来潮,决定做一个内网穿透的软件. 用过花生壳等软件的就知道内网穿透是个啥,干嘛用的了. 我们如果有服务器(比如tomcat),实际上我们在电脑上开启了服务器 ...
- TCP/IP网络编程之基于TCP的服务端/客户端(二)
回声客户端问题 上一章TCP/IP网络编程之基于TCP的服务端/客户端(一)中,我们解释了回声客户端所存在的问题,那么单单是客户端的问题,服务端没有任何问题?是的,服务端没有问题,现在先让我们回顾下服 ...
- 看懂 游戏《Minecraft》的崩溃报告 服务端/客户端
如何看懂Minecraft报错的关键信息. 让你如何看懂Minecraft报错 前言 一些俏皮话 寻找崩溃日志 打开崩溃日志 重要的事说三遍 下载文本编辑器 开始分析 深度分析 得出结论 修复报错 解 ...
- 服务端&客户端注册进Eureka
目录 服务端(接口提供方) 创建项目 导入Eureka客户端POM 启动类添加注解 配置YML 暴漏接口 启动服务 集群 配置成功后页面如下 客户端(接口调用方) 修改Yml文件 配置类 启动类添加注 ...
- react服务端/客户端,同构代码心得
FKP-REST是一套全栈javascript框架 react服务端/客户端,同构代码心得 作者:webkixi react服务端/客户端,同构代码心得 服务端,客户端同构一套代码,大前端的梦想, ...
- 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice
一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...
- JAVA WEBSERVICE服务端&客户端的配置及调用(基于JDK)
前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也 ...
随机推荐
- Andorid Scrolling Activity(CoordinatorLayout详情)
1.new project -> Scrolling Activity 2.Layout xml code activity_scrolling.xml <?xml version=&qu ...
- jsp 中包含 一个路径为变量的文件
<head> <base href="<%=basePath%>"> <% String fileroot="MyJsp.jsp ...
- Tomcat服务器安装与第一个jsp网页程序
1.安装tomcat服务器之前需要,先安装相应版本的jdk,个人理解Tomcat的大部分功能是使用了java的 jdk jar包的. jdk包下载方式网上可以查到 下载完后可以解压到一个指定目录,并在 ...
- tac
功能说明:反向显示文件内容. 参数选项: -b 在行前而非行尾加分隔标志. -r 将分隔标志视作正则表达式来解析. -s 使用指定字符串代替换行作为分隔标志. cat命令与tac命令的对比:
- 通过PHP怎样取到android系统下apk应用的包名,版本号等信息
公司项目关系,要求在通过PHP解析android系统应用apk包内的一切可用的信息.比如说:APK包名,版本号,版本名,安装权限等一系列关于对应包的信息.通过google查找相关的解决方案,都没有找到 ...
- Mybatis操作Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新
前言 利用Mybatis批量更新或者批量插入,实际上即使Mybatis完美支持你的sql,你也得看看你操作的数据库是否完全支持,而同事,最近就遇到这样的一个坑! 问题 先带大家来 ...
- 浏览器控制之 selenium,phantomJs谷无头浏览器
目录 浏览器控制之 selenium,phantomJs谷无头浏览器 selenium phantomJs 需求是尽可能多的爬取豆瓣网中的电影信息 谷歌无头浏览器 浏览器控制之 selenium,ph ...
- PAT 1105 Spiral Matrix
This time your job is to fill a sequence of N positive integers into a spiral matrix in non-increasi ...
- sql server的 between and 日期问题
- nagios监控ganglia指标,并配置告警
背景:nagios的监控插件在轻量级方面不如ganglia的gmond,且ganglia在指标监控方面尤其突出的优势,而nagios在配置告警方面也比较方便,正好可以弥补ganglia无法配置告警通知 ...