C#使用Scoket实现服务器和客户端互发信息
20240616
By wdhuag
目录
前言:
参考:
一、服务器端:
1、服务器端口绑定:
2、服务器关闭:
二、客户端:
1、客户端连接:
2、客户端断开:
三、通讯:
1、接收信息:
2、发送信息:
四、问题:
五、源码:
前言:
如题,工作中用到了,做个小程序验证一下功能。
参考:
C#使用Socket发送和接收TCP数据示例_c#tcp通信获取对方port-CSDN博客
C#实现Socket_TCP/IP(客户端,服务器端通信)_c# - 获取tcp服务器端口的所有客户端-CSDN博客
c#实现最简单的socket通信(一对一)_c# socket tcp client一对一server-CSDN博客
C#中通过Socket实现一个简单的TCP\IP服务器和客户端的搭建_tcp 服务端 客户端制作c#-CSDN博客
C#服务端与多客户端进行Tcp通信_c# tcp server-CSDN博客
C#中Socket关闭 Close、Dispose、Shutdown、Disconnect - jshchg - 博客园 (cnblogs.com)
Socket的基本操作函数socket()、bind()、listen()、connect()、accept()、recv()、send()、select()、close()_socket函数和bind-CSDN博客
一、服务端:
1、服务端 端口绑定:
private Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);string ip = 服务器IP地址;
int port = 服务器端口;
EndPoint _endPoint = new IPEndPoint(IPAddress.Parse(ip), port);
serverSocket.Bind(_endPoint); //绑定端口
serverSocket.Listen(100); //最大连接数
2、服务端关闭:
serverSocket.Shutdown(SocketShutdown.Both);
serverSocket.Close();
serverSocket.Dispose(); //不释放资源无法重新连接
二、客户端:
1、客户端连接:
private Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);string ip = 服务器ip地址;
int port = 服务器端口;
clientSocket.Connect(new IPEndPoint(IPAddress.Parse(ip), port));
2、客户端断开:
clientSocket.Disconnect(false);
三、通讯:
1、客户端接收信息:
byte[] data = new byte[1024];
int length = clientSocket.Receive(data);
string message = Encoding.UTF8.GetString(data, 0, length);
2、服务端接收信息:
clientSocket = serverSocket.Accept();byte[] data = new byte[1024];
int length = clientSocket.Receive(data);
string message = Encoding.UTF8.GetString(data, 0, length);
3、发送信息:
string cmd = 信息;
clientSocket.Send(Encoding.UTF8.GetBytes(cmd));
四、问题:
1、服务器强行关闭Socket,clientSocket = serverSocket.Accept();这一段会报错。。。如何完美停止?
2、服务端接收需要用多线程,不然只能接收最后连接客户端的信息。
五、源码:
链接: 度盘
提取码:ihdp
END
相关文章:
C#使用Scoket实现服务器和客户端互发信息
20240616 By wdhuag 目录 前言: 参考: 一、服务器端: 1、服务器端口绑定: 2、服务器关闭: 二、客户端: 1、客户端连接: 2、客户端断开: 三、通讯: 1、接收信…...
【经验分享】SpringCloud + MyBatis Plus 配置 MySQL,TDengine 双数据源
概述 因为项目中采集工厂中的设备码点的数据量比较大,需要集成TDengine时序数据库,所以需要设置双数据源 操作步骤 导入依赖 <!-- 多数据源支持 --><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-s…...
Pycharm 忽略文件
安装 .ignore插件 规则示例 罗列一些常遇到.getignore忽略规则的使用示例: 1. 在已忽略文件夹中不忽略指定文件夹: /libs/* !/libs/extend/ 2. 在已忽略文件夹中不忽略指定文件 /libs/* !/libs/extend/fastjson.jar 3.只忽略libs目录…...
爬虫学习。。。。
爬虫的概念: 爬虫是一种自动化信息采集程序或脚本,用于从互联网上抓取信息。 它通过模拟浏览器请求站点的行为,获取资源后分析并提取有用数据,这些数据可以是HTML代码、JSON数据或二进制数据(如图片、视频)…...
美国铁路客运巨头Amtrak泄漏旅客数据,数据销毁 硬盘销毁 文件销毁
旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 美国国家客运铁路公司(Amtrak)近日披露了一起数据泄露事件,旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 根据Amtrak向马萨诸塞州提交的泄露通知,5月15日…...
LabVIEW与Matlab联合编程的途径及比较
LabVIEW和Matlab联合编程可以通过多种途径实现,包括调用Matlab脚本节点、使用LabVIEW MathScript RT模块、利用ActiveX和COM接口,以及通过文件读写实现数据交换。每种方法都有其独特的优势和适用场景。本文将详细比较这些方法,帮助开发者…...
秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}
文章目录 引言复习(单调队列优化DP)——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 (单调队列优化DP)…...
SAR动目标检测系列:【4】动目标二维速度估计
在三大类杂波抑制技术(ATI、DPCA和STAP)中,STAP技术利用杂波与动目标在二维空时谱的差异,以信噪比最优为准则,对地杂波抑制的同时有效保留动目标后向散射能量,有效提高运动目标的检测概率和动目标信号输出信杂比,提供理…...
JavaEE多线程(2)
文章目录 1..多线程的安全1.1出现多线程不安全的原因1.2解决多线程不安全的⽅法1.3三种典型死锁场景1.4如何避免死锁问题2.线程等待通知机制2.1等待通知的作用2.2等待通知的方法——wait2.3唤醒wait的方法——notify 1…多线程的安全 1.1出现多线程不安全的原因 线程在系统中…...
中新赛克两款数据安全产品成功获得“可信数安”评估测试证书
6月19日,2024数据智能大会在北京盛大召开。 会上,中国2024年上半年度“可信数安”评估测试证书正式颁发。中新赛克两款参评产品凭借过硬的技术水准和卓越的应用效果,成功获得专项测试证书。 2024年上半年度“可信数安”评估测试通过名单 中新…...
代码随想录——分割回文串(Leetcode 131)
题目链接 回溯 class Solution {List<List<String>> res new ArrayList<List<String>>();List<String> list new ArrayList<String>();public List<List<String>> partition(String s) {backtracking(s, 0);return res;}p…...
Rust 学习方法及学习路线汇总
Rust 学习方法及学习路线汇总 Rust 是一种系统编程语言,旨在提供安全性、并发性和高性能。它是由 Mozilla 公司开发的,于 2010 年首次发布。Rust 能够帮助开发者编写可靠和高效的软件,因此受到了广泛的关注和认可。 如果你有兴趣学习 Rust&…...
一名女DBA的感谢信,到底发生了什么?
昨日我们收到这样一通来电 “早上九点刚上班便收到业务投诉电话,系统卡顿,接口失败率大增,怀疑数据库问题。打开运维平台发现是国产库,生无可恋,第一次生产环境遇到国产库性能问题,没什么排查经验…...
群晖NAS本地部署并运行一个基于大语言模型Llama2的个人本地聊天机器人
前言 本文主要分享如何在群晖 NAS 本地部署并运行一个基于大语言模型 Llama 2 的个人本地聊天机器人并结合内网穿透工具发布到公网远程访问。本地部署对设备配置要求高一些,如果想要拥有比较好的体验,可以使用高配置的服务器设备. 目前大部分大语言模型的产品都是基于网络线上…...
HarmonyOS模拟器(phone-x86-api9)一直卡顿的解决方法
在DevEco Studio 3.1.1 Release版本中的Device Manager中创建本地的模拟器,创建phone-x86-api9模拟器成功,但是启动该新建的模拟器一直显示"HarmonyOS"logo图片,然后一直卡在这里,运行结果如下所示: 检查模…...
排序题目:有序数组的平方
文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:有序数组的平方 出处:977. 有序数组的平方 难度 2 级 题目描述 要求 给定按非递减顺序排序的整…...
PPT可以转换成Word吗?归纳了三种转换方式
PPT可以转换成Word吗?在当今快节奏的工作和学习环境中,不同格式文件之间的转换变得日益重要。PPT作为演示文稿制作的首选工具,广泛应用于会议演讲、教育培训等多个场景,而Word则是文档编辑与编排的基石。为了便于进一步编辑、分享…...
分布式锁三种方案
基于数据库的分布式锁(基于主键id和唯一索引) 1基于主键实现分布式锁 2基于唯一索引实现分布式锁 其实原理一致,都是采用一个唯一的标识进行判断是否加锁。 原理:通过主键或者唯一索性两者都是唯一的特性,如果多个…...
【HarmonyOS NEXT】har 包的构建生成过程
Har模块文件结构 构建HAR 打包规则 开源HAR除了默认不需要打包的文件(build、node_modules、oh_modules、.cxx、.previewer、.hvigor、.gitignore、.ohpmignore)和.gitignore/.ohpmignore中配置的文件,cpp工程的CMakeLists.txt,…...
从0开发一个Chrome插件:项目实战——翻译插件(附带申请谷歌翻译、百度翻译教程)
前言 这是《从0开发一个Chrome插件》系列的第十八篇文章,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发Chrome插件的必…...
查看nginx安装/配置路径,一个服务器启动两个nginx
查看nginx安装/配置路径 查看nginx的pid: ps -ef | grep nginx查看pid对应服务的启动路径 ll /proc/2320/exe使用检查配置文件命令,查看配置文件位置 /usr/local/nginx/sbin/nginx -t一个服务启动两个nginx 拷贝一份程序,cpbin是我自己创…...
JavaScript中 Map与reduce的应用
1. Map:映射新世界 Map构造函数创建一个新Map对象,它允许你以键值对的形式存储数据,提供了一种更加灵活的数据结构。与传统的对象相比,Map允许任何值(包括对象)作为键,而且具有更好的性能表现。…...
1688商品详情API:一键解锁海量批发数据
引言 1688作为阿里巴巴旗下的B2B交易平台,拥有庞大的商品数据库和丰富的供应商资源。对于想要获取商品详细信息的开发者和企业而言,1688提供的API接口是获取一手数据的关键途径。本文将详细介绍如何使用1688商品详情API,包括注册、获取API密…...
C#结合JS 修改解决 KindEditor 弹出层问题
目录 问题现象 原因分析 范例运行环境 解决问题 修改 kindeditor.js C# 服务端更新 小结 问题现象 KindEditor 是一款出色的富文本HTML在线编辑器,关于编辑器的详细介绍可参考我的文章《C# 将 TextBox 绑定为 KindEditor 富文本》,这里我们讲述在…...
二开的精美UI站长源码分享论坛网站源码 可切换皮肤界面
二开的精美UI站长源码分享论坛网站源码 可切换皮肤界面 二开的精美UI站长源码分享论坛网站源码 可切换皮肤界面...
【diffusers极速入门(三)】生成的图像尺寸与 UNet 和 VAE 之间的关系
先上结论,一句话总结即: SD 图片的输入\输出尺寸(高或宽) Unet 输入\输出的样本尺寸(高或宽) x VAE 的缩放尺寸 在使用生成模型时,特别是图像生成任务中,理解 UNet 和 VAE…...
react实现窗口悬浮框,可拖拽、折叠、滚动
1、效果如下 2、如下两个文件不需要修改 drag.js import React from "react"; import PropTypes from "prop-types";export default class DragM extends React.Component {static propTypes {children: PropTypes.element.isRequired};static defaultP…...
52【场景作图】空间感
参考 场景绘制,画面空间感如何拉开?分分钟就能学会的场景优化思路更新啦!_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1pa411J7Ps/?spm_id_from333.337.search-card.all.click&vd_source20db0c4e2d303527ed13c4b9cdf698ec 1 …...
SpringBoot系列之搭建WebSocket应用
SpringBoot系列之ServerEndpoint方式开发WebSocket应用。在实时的数据推送方面,经常会使用WebSocket或者MQTT来实现,WebSocket是一种不错的方案,只需要建立连接,服务端和客户端就可以进行双向的数据通信。很多网站的客户聊天&…...
RK3568技术笔记十四 Ubuntu创建共享文件夹
单击“虚拟机”,单击“设置”,如图所示: 单击“选项”,选择“总是启用(E)”,单击“添加”,如图所示: 单击“下一步”,如图所示: 单击“浏览”添加…...
php 手机网站/网络营销公司注册找哪家
“我的祖国和我,像海和浪花一朵,浪是那海的赤子,海是那浪的依托。”,大家好,我是你们的"浪花一朵"。话不多说直接进入正题。第一步,百度搜索hbuilderx,随便找一个,比如这个…...
wordpress 主题名字/每天新闻早知道
hive是什么? 由facebook开源,用于解决海量结构化日志的数据统计;基于hadoop的一个数据仓库工具,使用HDFS进行存储并将结构化数据文件映射成一张表,并提供类sql查询的功能,其底层采用MR进行计算;…...
鄂州网站建设与设计/seo优化技术培训中心
作者:九章算法来源:数据Seminar本文约2400字,建议阅读5分钟本文教你高效学习全球主流编程语言Python。标签:PythonPython是当前全球的主流编程语言之一,基于其简洁的语法结构,可以让开发者用更少的代码完成…...
品牌建设项目申报/seo实战密码第三版pdf
Apple的WebKit浏览器引擎JavaScript引擎JavaScriptCore已升级为新的字节码格式,从而提高了内存效率和类型安全性。 这种格式的目标在6月21日的公告中进行了详细介绍 ,目的是减少内存消耗并允许字节码缓存在磁盘上。 WebKit团队声称,新格式平…...
抖音引流推广软件/seo自动工具
算法分析车辆路径规划寻路算法有很多,apollo路径规划模块使用的是启发式搜索算法A*寻路算法。a*算法是一种在路网上中求解最短路径的直接搜索寻路算法,原理是引入估价函数,加快搜索速度,提高了局部择优算法搜索的精度,成为当前较为…...
淘宝客的网站是怎么做的/百度双十一活动
QT 加载文件,图片路径很容易搞混,需要注意的是WINDOW路径分隔符为“”,QT为“/”,我遇到的路径加载总结为三种情况: (1)绝对路径,文件的整个路径,比如 setWindowIcon(QIcon("F:…...