C# Socket入门编程winform案例(附下载链接)

news2024/11/25 10:53:58

C# socket编程实现信息的接收(winform)

点我下载项目资源

服务器端:
第一步:建立一个用于通信的Socket对象
第二步:使用bind绑定IP地址和端口号
第三步:使用listen监听客户端
第四步:使用accept中断程序直到连接上客户端
第五步:接收来自客户端的请求
第六步:返回客户端需要的数据
第七步:如果接收到客户端已关闭连接信息就关闭服务器端

客户端:
第一步:建立一个用于通信的Socket对象
第二步:根据指定的IP和端口connet服务器
第三步:连接成功后向服务器端发送数据请求
第四步:接收服务器返回的请求数据 第五步:如果还需要请求数据继续发送请求
第六步:如果不需要请求数据就关闭客户端并给服务器发送关闭连接信息

程序如下所示:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
服务端连接关键代码

 #region 连接服务器端
        private void button_Connect_Click(object sender, EventArgs e)
        {
            ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);     //声明负责通信的套接字

            richTextBox_Receive.Text += "正在连接...\n";

            IPAddress IP = IPAddress.Parse(textBox_Addr.Text);      //获取设置的IP地址
            int Port = int.Parse(textBox_Port.Text);       //获取设置的端口号
            IPEndPoint iPEndPoint = new IPEndPoint(IP, Port);    //指定的端口号和服务器的ip建立一个IPEndPoint对象

            try
            {
                ClientSocket.Connect(iPEndPoint);       //用socket对象的Connect()方法以上面建立的IPEndPoint对象做为参数,向服务器发出连接请求
                SFlag = 1;  //若连接成功将标志设置为1

                richTextBox_Receive.Text += DateTime.Now.ToString("yy-MM-dd hh:mm:ss  ") + textBox_Addr.Text + "连接成功" + "\n";
                button_Connect.Enabled = false;     //禁止操作连接按钮

                //开启一个线程接收数据
                th1 = new Thread(Receive);
                th1.IsBackground = true;
                th1.Start(ClientSocket);
            }
            catch
            {
                MessageBox.Show("服务器未打开");
            }
        }
        #endregion

点我下载项目资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/613171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宝安西乡产业园变九年制学校,新增宅地、商地。

6月5日,宝安区城市更新和土地整备局发布《西乡街道盐田社区银田地块土地整备利益统筹项目土地整备规划(草案)》(以下简称草案)。 草案显示,该项目经过调整后: ● 新增一块二类居住用地&#xf…

王者荣耀战区活跃度排名怎么实现的?这篇文章给你答案!

🍉博客主页:阿博历练记 📖文章专栏:数据结构与算法 🚍代码仓库:阿博编程日记 🍥欢迎关注:欢迎友友们点赞收藏关注哦🌹 文章目录 🌈前言🍪堆的实现🔍1.堆的结构框架🔍2.堆…

通过ChatGPT打造10W+公众号文章

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加:keeepdance,备注:chatgpt。 这是一篇非常具有实操性的指南,可能会动到一些某些行业人的蛋糕,但我无益于此。我是…

pnpm的安装和使用

1 安装 1.1 安装教程 npm全局安装pnpm npm install -g pnpm设置镜像地址 获取当前配置的镜像地址 pnpm get registry设置新的镜像地址 pnpm set registry https://registry.npm.taobao.org设置包存放地址 pnpm config set store-dir E:/xxx1.2 安装问题 当在vscode上使用…

在labview里使用LabSQL连接ACCESS数据库

使用LabSQL连接ACCESS数据库 写在前面ODBC数据源管理器的配置LV软件里使用结束 写在前面 ACCESS数据库一般包含在Office组件里,安装完Office后就可以直接拿来使用,要求不高的场合适合使用。 LabSQL工具包直接放进LV的安装目录下,打开软件后在…

SpringBootWeb案例-1(下: 来源黑马程序员)

3. 员工管理 完成了部门管理的功能开发之后,我们进入到下一环节员工管理功能的开发。 基于以上原型,我们可以把员工管理功能分为: 分页查询带条件的分页查询删除员工新增员工修改员工 3.1 分页查询 3.1.1 基础分页 3.1.1.1 需求分析 我…

YOLOV8 Onnxruntime Opencv DNN C++部署

1.Opencv介绍 OpenCV由各种不同组件组成。OpenCV源代码主要由OpenCV core(核心库)、opencv_contrib和opencv_extra等子仓库组成。近些年,OpenCV的主仓库增加了深度学习相关的子仓库:OpenVINO(即DLDT, Deep Learning Deployment Toolkit)、open_model_zoo,以及标注工具CV…

C++标准模板库 队列容器的使用

队列:在数据结构中也成为操作受限的线性表,是一种只允许在表的一端插入,在另一端删除的线性表 特点:先进先出,像打饭《排在最前面的先买,后到的排在队尾,即删除在队头,插入在队尾》…

面试测试工程师,都要考察什么?

今年刚接触了(功能)测试工程师的面试工作,有遇到对信贷业务流程较熟悉的、工作内容纯测试app功能的、什么都接触过但是不够深入的,发现简历上写的东西和实际真的有点差距,面试也是一个艺术活。 如果你想学习自动化测试…

Security Onion(安全洋葱)开源入侵检测系统(ids)安装

文章目录 Security Onion介绍安装配置(最低)安装步骤web界面 Security Onion介绍 Security Onion是一款专为入侵检测和NSM(网络安全监控)设计的Linux发行版。其安装过程很简单,在短时间内就可以部署一套完整的NSM收集、检测和分析的套件。Se…

高完整性系统(6)Alloy核心语法 + 有限状态机(Finite State Machines);check assertion amination

文章目录 Alloy 核心内容sig数据类型varonefactpre-conditionfunpred 谓词谓词的构成谓词的结果 / 普通条件约束和 pre-post condition 的区别 Finite State Machines 有限状态机FSM in Alloy Check Specification动画(Animation):run 关键字…

安装superset并连接clickhouse

说明: Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘。 使用的服务器操作系统为CentOS 7&a…

路径规划算法:基于天牛须优化的路径规划算法- 附代码

路径规划算法:基于天牛须优化的路径规划算法- 附代码 文章目录 路径规划算法:基于天牛须优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

【数据结构与算法篇】深入浅出——二叉树(详解)

​👻内容专栏:《数据结构与算法专栏》 🐨本文概括: 二叉树是一种常见的数据结构,它在计算机科学中广泛应用。本博客将介绍什么是二叉树、二叉树的顺序与链式结构以及它的基本操作,帮助读者理解和运用这一重…

微信开发框架WxJava之微信公众号开发的入门使用篇

微信开发框架WxJava之微信公众号开发的入门使用篇 WxJava介绍微信公众号申请测试公众号测试公众号配置 WxJava微信公众号开发添加依赖配置微信参数实例化WxMpService对接微信公众号回调接收与回复消息 微信消息路由器WxMpMessageHandlerWxMessageInterceptor自定义Handle自定义…

Vue.js devtools运行但调试窗口未出现的解决方案

Vue.js devtools是一款基于Chrome浏览器的调试Vue.js应用的扩展程序。然而,有时即使该插件已经在运行,调试窗口也可能未出现。这主要可能有以下几个原因,并附有相应的解决方法: 1. Chrome扩展程序选项的问题 首先,右上…

关于数据挖掘的问题之经典案例

依据交易数据集 basket_data.csv挖掘数据中购买行为中的关联规则。 问题分析: 如和去对一个数据集进行关联规则挖掘,找到数据集中的项集之间的关联性。 处理步骤: 首先导入了两个库,pandas 库和 apyori 库。pandas 库是 Pytho…

二叉树基础知识力扣题构造二叉树总结

二叉树 如何理解二叉树,This is a question! 作者在去年被布置要求学习二叉树时对二叉树的理解并不是很深刻,甚至可以说是绕道走,但是Luck of the draw only draws the unlucky,在学期初考核时,作者三道二叉树题都没…

ArrayBlockingQueue中方法的基本使用

生产者生产数据 使用add()方法向队列中添加元素,在队列满的时候会抛出异常。 ArrayBlockingQueue是基于数组实现,初始化完成后长度是不可变的,在其构造方法中也都是有参构造,初始化对象时必须指定当前队列的长度。 使用offer()方…

day05——K-近邻算法

K-近邻算法 一、定义二、API三、实操:预测签到位置1,数据获取2,数据基本处理3,预测算法代码 四、调优1,什么是交叉验证2,超参数搜索-网格搜索(Grid Search)3,调优代码 五、KNN 算法总结 一、定义…