与连接的客户端同步a,b的值,具体来说:
1.服务端开启后,可以被客户端进行连接;
2.客户端向服务端发送数据,服务端接收数据后将其转发推送给所有连接的客户端。应用场景是,客户端想要修改远程服务器数据库,向服务端发送信息,服务端自身或者通过其他程序修改之后,将变更后的数据推送给所有连接的客户端;
3.当有新的客户端连接进来,不必等到数据变化,服务端主动将当前最新数据推送给这个客户端;
4.发送的数据要约定好规则进行解析,否则参数一多就会乱了套。不过这里为了省事我暂且只将其包装成json形式。
文末提供源码下载。
2 界面设计
界面将就着看吧
2.1 界面说明
大致可分为:
监听地址设置;
监听开启/关闭,及服务端状态标签;
a,b值的显示与广播;
信息框,用于将一些信息显示出来。
3 主要代码实现
3.1 命名空间及引用
using Newtonsoft.Json; using System.Threading; using System.Web; using System.Net.WebSockets; using System.Net; using System.Diagnostics;//AddAddress方法使用
在默认生成的using后面添加这些。
注意Newtonsoft.Json适用于处理json,需要将这个dll文件添加进引用,可以右键引用-管理nuget程序包搜索,也可以 工具-nuget包管理器-程序包管理控制台 输入
Install-Package Newtonsoft.Json
3.1 开启监听
实例化httplistener对象监听端口,如果是websocket类型请求,则进行处理
//开启监听 private void btnStart_Click(object sender, EventArgs e) { if (txtIPAddress.Enabled == true) { MessageBox.Show("请先确认地址"); return; } string IpAdress = txtIPAddress.Text; txtInfo.AppendText("打开监听" + DateTime.Now.ToString() + "\n"); Start(IpAdress); }