C#练习:局域网内使用套接字进行信息传输

news/2024/9/16 21:14:29/文章来源:https://www.cnblogs.com/leo130-blogs/p/18401579

C#练习:局域网内使用套接字进行信息传输

一、在C#创建套接字socketserver和cilent。 实现步骤: 1、创建SocketServer对象。 用于监听和返回信息。

①创建socket对象用于SocketSever:
socket的参数
地址族:AddressFamily.InterNetwork
套接类型:SocketType.Stream
传输协议:ProtoclType.Tcp

Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

②创建IpEndPoint对象绑定当前IP(address)和监听端口Port。

Address = IPAddress.Parse(address);
Port = port;
IPEndPoint = new IPEndPoint(Address, Port);

③实现对SocketSever对象的初始化。

public class SocketServer{...other code...public SocketServer(string address, int port) {Address = IPAddress.Parse(address);Port = port;IPEndPoint = new IPEndPoint(Address, Port);socket.Bind(IPEndPoint);}
}

④实现SocketServer对象的监听功能。
创建buffer,用于接收传入的信息。
输出接收到的信息。

/// <summary>
/// 执行监听,传入的参数可限定最大的连接数量
/// </summary>
/// <param name="maxLength"></param>
public void Listen(int maxLength)
{socket.Listen(maxLength);Console.WriteLine($"listen in port:{IPEndPoint.Port} now");byte[] buffer = new byte[1024];while (true){Socket temp = socket.Accept();temp.Receive(buffer);Console.WriteLine(buffer.Length);Console.WriteLine(Encoding.UTF8.GetString(buffer));byte[] buffer_response = new byte[1024];buffer_response = Encoding.UTF8.GetBytes("received!");temp.Send(buffer_response, 0);}
}

⑤测试

public static void Main()
{SocketServer server = new SocketServer("127.0.0.1", 5612);server.Listen(10);
}

2、创建SocketCilent对象。
用于向Server端发送信息。
①创建SocketCilent对象用于向SocketServer发送信息。

public class SocketCilent
{/// <summary>/// 传入ip地址和监听端口来构造一个Socket服务/// </summary>/// <param name="address">绑定的ip地址</param>/// <param name="port">绑定的监听端口号</param>public SocketCilent(string address, int port){Address = IPAddress.Parse(address);Port = port;IPEndPoint = new IPEndPoint(Address, Port);socket.Connect(IPEndPoint);}

}
②创建发送信息的方法

 /// <summary>/// 发送byte[]类型的信息/// </summary>/// <param name="msg"></param>public void Send(string msg){byte[] buffer = Encoding.UTF8.GetBytes(msg);socket.Send(buffer,0);socket.Receive(buffer);Console.WriteLine(Encoding.UTF8.GetString(buffer));socket.Close();}

③测试

public static void Main()
{SocketCilent cilent = new SocketCilent("127.0.0.1", 5612);cilent.Send("broadcast message!");
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

发布页说明(必看)

作为一枚INFJ的大学生,有时候比较忙(呜呜),博客园更新可能不太及时 最新的笔记可以在星途-Notion笔记看到 如果你有好的建议或者学习路线,文章纠正等等balabala,或者想讨论游戏开发相关的技术,亦或是闲聊,欢迎发送邮箱至starrytracesky@outlook.com群星的轨道终将交汇.…

[nacos] Nacos 1 架构与原理

1 NACOS 架构与原理 架构推荐文献https://nacos.io/en-us/docs/architecture.html基本架构逻辑架构服务管理:实现服务CRUD、域名CRUD、服务健康检查、服务权重管理等。 配置管理:实现配置的CRUD、版本管理、灰度管理、监控管理、推送轨迹、聚合数据等。 元数据管理:提供元数…

真人模特失业?AI虚拟试衣一键成图,IDM-VTON下载介绍

在电商行业竞争尤为激烈的当下,除了打价格战外,如何有效的控制成本,是每个从业者都在思考的问题 IDM-VTON是一个AI虚拟换装工具,旨在帮助服装商家解决约拍模特导致的高昂成本问题,只需一张服装图片,就可以生成各种身穿该服装的模特,大大简化了传统的产品展示过程 IDM-VT…

用空间清理调理风13重要物品14别人的杂物15杂乱与风水符号学

13 重要物品 在清理杂物时,别忘了大件东西。你一直讨厌的那件可怕的旧家具、堵塞客厅的三角钢琴、你从来不用的卷起来的地毯、后院生锈的汽车、角落里积满灰尘的十年前瑞士奶酪植物。 有些东西非常大,搬动它们是一项挑战,所以你要学会看穿它们的艺术,就像它们不再存在一样。…

秸秆禁烧烟火识别系统

秸秆禁烧烟火识别系统一旦检测到烟雾,秸秆禁烧识别系统将自动监测监控画面中是否存在秸秆焚烧处理,不用人工干涉。当秸秆禁烧烟火识别系统监测到火苗时,系统会自动报警,通知监控管理中心,提示相关人员及时处理。与此同时,将警报截屏和视频保存到数据表中,自动汇总。秸秆…

Javaweb-DQL-聚合函数

select count(*) from stu;-- 1 select max(math) from stu;-- 2 select min(math) from stu;-- 3 select sum(math) from stu;-- 4 select avg(math) from stu;-- 5 select min(english) from stu;-- 6

厨师帽识别系统 明厨亮灶

厨师帽识别系统即时检测餐饮厨房地区,当监控人员不戴厨师帽时,马上警报,与此同时储存警报截屏视频到数据库系统产生汇报,推荐给有关管理者,也可以依据报警记录和警报截屏、视频查看播放,进一步提高监控区域的操纵高效率,产生高效的监管功效,提升食品类安全管理。厨师帽…

河道水面结冰识别监测报警 河道冰水情冰凌图像识别

河道水面结冰识别监测系统它能够即时、智能化地监测和识别江河里的水面是否结冰,河道冰水情冰凌图像识别反复进行算法自我学习最新数据的升级。通过加工处理和分析后,马上传送给相关人员,有利于实时监控系统和破冰以便船舶通航,降低人力资源耗费,提高效率。智能化专注于人…

河道水面漂浮物识别检测

河道水面漂浮物识别检测根据监控摄像头搜集江河或湖水的短视频,截取图片中带有海上漂浮物的照片,河道水面漂浮物识别检测训练所需照片,形成数据实体模型,随后即时检测真正情景里的监控视频或照片。因而,完成检测的第一步是收集数据。河道水面漂浮物识别检测根据监控摄像头…

个人主页,简洁又好看,每个人都可以轻松搭建

今日周末不用上班,照例醒的很早,老婆孩子都还在睡觉,不便打扰,于是来到阁楼书房打开电脑,准备刷刷视频享受下愉快的周末休闲时光,启动浏览器,发现浏览器主页无法打开,主页指向的是我个人搭建的咖啡吧导航,一个囊括了我的常用网站及实用工具的导航站,配置的我的个人主…

P2056 [ZJOI2007] 捉迷藏

题意: 给出一个 \(n\) 个点的树,每个点有黑白两种颜色。初始时每个点都是黑色的。\(q\) 次操作,支持:C x 将第 \(x\) 个点的颜色反转。 G 询问树上两个黑色点的最远距离。分析: 尝试使用点分树,对于一条路径,可以从点分树的 \(lca\) 处统计,由于涉及到删除和添加两种操…