SuperSocket 学习笔记-客户端
客户端:
定义
private AsyncTcpSession client;
初始化
client = new AsyncTcpSession();
client.Connected += ClientOnConnected;
client.Closed += ClientOnClosed;
client.DataReceived += ClientOnDataReceived;
ThreadPool.QueueUserWorkItem(ConnectServer_Loop);
事件
private void ClientOnDataReceived(object sender, DataEventArgs e) {
var dat = Encoding.Default.GetString(e.Data.Take(e.Length).ToArray());
//使用有效数据长度截取数组,可消除数据中的多余空字符
textBox1.AppendText($"收到数据:{dat}");
}
private void ClientOnClosed(object sender, EventArgs e) {
textBox1.AppendText($"服务器连接关闭{Environment.NewLine}");
}
private void ClientOnConnected(object sender, EventArgs e) {
textBox1.AppendText($"已连接服务器{Environment.NewLine}");
}
持续线程
private void ConnectServer_Loop(object state) {
if (ConnectServer_Loop_workState) return;
ConnectServer_Loop_workState = true;
while (ConnectServer_Loop_workState) {
Thread.Sleep();
if (!client.IsConnected) {
try {
client.Connect(new IPEndPoint(IPAddress.Parse("192.168.15.2"), ));
} catch {}
}
}
ConnectServer_Loop_workState = false;
}
private bool ConnectServer_Loop_workState;
private void ConnectServer_Loop_Stop() => ConnectServer_Loop_workState = false;
此外,客户端发送数据后必须在结尾添加回车换行标志,否则服务端不能触发接收消息事件
SuperSocket 学习笔记-客户端的更多相关文章
- SuperSocket学习笔记(二)
上一篇博客SuperSocket学习笔记(一)说明了怎么快速搭建一个服务器端,这篇文章我想深挖一下SuperSocket 1. 每一个客户端连接到服务器端时,服务器端会将客户端的信息保存到一个Sess ...
- SuperSocket学习笔记(一)
这是根据我自己学习的经历整理出来的,如有不对之处,还请多多指教! SuperSocket源码下载 SuperSocket文档 安装并启动Telnet 学习方法: QuickStrart + 文档 参考 ...
- SuperSocket学习笔记(一)-一个完整的例子
一.什么是SuperSocket 以下是作者的介绍 执行以下命令,获取SuperSocket项目 $ git clone https://github.com/kerryjiang/SuperSock ...
- MongoDB学习笔记~客户端命令行的使用
回到目录 当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一 ...
- redis学习笔记——客户端
Redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复. 对于每个与服务 ...
- Metasploit学习笔记——客户端渗透攻击
1.浏览器渗透攻击实例——MS11-050安全漏洞 示例代码如下 msf > use windows/browser/ms11_050_mshtml_cobjectelement msf exp ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- MongoDB学习笔记系列~目录
MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...
- Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较
我们经常要在客户端进行数据查询,下面分别比较常用的几种查询方式:XMLHttpRequest, SDK.JQuery, SDK.Rest. XMLHttpRequest是最基本的调用方式,JQuery ...
随机推荐
- Django的orm练习
models(创建表): class Grade(models.Model): """年级表""" gname=models.CharFie ...
- 【转载】#pragma once与#ifndef
本篇随笔为转载,原贴地址:#pragma once与#ifndef解析 为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式.在 ...
- java 8 foreach获取索引
当 forEach 需要索引 https://segmentfault.com/a/1190000007881498 或者采用 List<string> stringList = new ...
- JavaScript Array -->map()、filter()、reduce()、forEach()函数的使用
题目: 1.得到 3000 到 3500 之内工资的人. 2.增加一个年龄的字段,并且计算其年龄. 3.打印出每个人的所在城市 4.计算所有人的工资的总和. 测试数据: function getDat ...
- 一个原生ajax在jetbrains开发平台的调用方法
这段随笔的记述目的无非是,一个html页面中可能有多段js代码,所以采用外引的方法应该会好一些 function checkfiles() { var xhr = new XMLHttpRequest ...
- iOS的navigationbar设置左边按钮文字
实例代码: - (void)viewDidLoad { [super viewDidLoad]; [self setTitle:@"Test"]; //以下是主要实现代码 UIBu ...
- ubuntu安装wireshark
$sudo apt-add-repository ppa:wireshark-dev/stable$sudo apt update$sudo apt install wireshark 出于安全方面的 ...
- 走进Github的世界
1.官网注册账号 2.官网向导: https://guides.github.com/activities/hello-world/ 值得推荐: Git手册: https://git-scm.com/ ...
- [人物存档]【AI少女】【捏脸数据】现代风格
点击下载:6543d037acaf2edd03b4679f821001e9380193ce.png
- Centos 由字符界面 init 3 切换图形界面 init 5
Centos6 和 Centos7 由字符界面切换成 图形界面方法不同,下面分别介绍. 一.Centos6 切换方法 yum -y install xorg* yum -y groupinstall ...