当前位置: 首页 > news >正文

使用AweSocket 收发消息


使用AweSocket 收发消息

public Form1()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;


            
        }


        private void ListenInBlockIOMode()
        {
            Task.Run(() =>
            {
                var listenSocket = AweSock.TcpListen(_listeningPort);


                while (true)
                {
                    var client = AweSock.TcpAccept(listenSocket);


                    var inBuf = AwesomeSockets.Buffers.Buffer.New();
                    var received = AweSock.ReceiveMessage(client, inBuf);
                    AwesomeSockets.Buffers.Buffer.FinalizeBuffer(inBuf);


                    var msg = Encoding.UTF8.GetString(AwesomeSockets.Buffers.Buffer.GetBuffer(inBuf)).Replace("\0", "");
                    txtContent.AppendText("\r\n" + msg);
                }
            });
        }


        private void btnSend_Click(object sender, EventArgs e)
        {
            try
            {
                var server = AweSock.TcpConnect(txtIP.Text, int.Parse(txtSendPort.Text));
                var outBuf = AwesomeSockets.Buffers.Buffer.New();


                AwesomeSockets.Buffers.Buffer.ClearBuffer(outBuf);
                AwesomeSockets.Buffers.Buffer.Add(outBuf, txtSend.Text);
                AwesomeSockets.Buffers.Buffer.FinalizeBuffer(outBuf);


                int bytesSent = AweSock.SendMessage(server, outBuf);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK);
            }
        }


        private int _listeningPort;
        private void Form1_Load(object sender, EventArgs e)
        {
            _listeningPort = int.Parse(ConfigurationManager.AppSettings["listeningPort"]);
            Text = string.Format("Listening : {0}", _listeningPort);


            ListenInBlockIOMode();
        }





UI :

相关文章:

  • __asm__ __volatile__内嵌汇编用法简述
  • CLR 学习-- .net中的共享组件与GAC
  • PXA270嵌入式系统设计一:电源管理部分
  • Azure Machine Learning Studio 实例 -- 预测xx年的食物工厂总数
  • azure machine learning 预测分类实例-- 预测出口国
  • PXA270嵌入式系统设计二:时钟及复位部分
  • azure machine learning 机器学习算法的选择
  • linux内核对S3C2410睡眠模式的支持
  • 机器学习 -- 最小二乘法与梯度下降法
  • 机器学习-- K-Means 的介绍与实现
  • 【公告】博客文章丢失,现已全部重新上传!!
  • 机器学习 --KNN的介绍与实现
  • 学会面对生死---写在爷爷离开后的日子
  • 机器学习 -- 二元逻辑回归实例
  • Winforms: 不能在Validating时弹出有模式的对话框
  • python3.6+scrapy+mysql 爬虫实战
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 2017 年终总结 —— 在路上
  • Android开源项目规范总结
  • Angular 4.x 动态创建组件
  • Facebook AccountKit 接入的坑点
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • js递归,无限分级树形折叠菜单
  • nginx 负载服务器优化
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • ReactNative开发常用的三方模块
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 多线程事务回滚
  • 关于字符编码你应该知道的事情
  • 猴子数据域名防封接口降低小说被封的风险
  • 聊聊directory traversal attack
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何设计一个微型分布式架构?
  • 十年未变!安全,谁之责?(下)
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 数组的操作
  • 自动记录MySQL慢查询快照脚本
  • Java数据解析之JSON
  • #{}和${}的区别是什么 -- java面试
  • $(function(){})与(function($){....})(jQuery)的区别
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (二)JAVA使用POI操作excel
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Scala的“=”符号简介
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET Core 将实体类转换为 SQL(ORM 映射)