首页 > 其他分享 >.Net core 使用socket 传输数据

.Net core 使用socket 传输数据

时间:2022-11-10 11:22:51浏览次数:50  
标签:core Console 传输数据 serverSocket new Net IPAddress 连接 客户端

模拟服务端

private string TcpServiceControl(string value)
        {
            // 1.按照模拟工具上看 先new一个tcp服务
            Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //申请端口,绑定ip
            IPAddress iPAddress = IPAddress.Parse(_appConfig.ApplictionSettings.ControlTcpIP);
            IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, Convert.ToInt32(_appConfig.ApplictionSettings.ControlTcpPort));
            //绑定ip和端口
            serverSocket.Bind(iPEndPoint);
            //开始监听端口 设置50防止服务器崩溃,设置0表示不限制数量
            serverSocket.Listen(0);//传递挂起的连接队列的最大长度

            //接收客户端信息 程序会暂停 直到由一个客户端连接过来才会继续向下运行
            Socket clientSocket = serverSocket.Accept();//接收一个客户端连接,返回一个socket用来和客户端通讯

            //向客户端发送一条数据
            byte[] data = System.Text.Encoding.UTF8.GetBytes(value);
            clientSocket.Send(data);

            //接收客户端一条消息
            byte[] databuffer = new byte[1024];//接收时先定义一个数组
            int count = clientSocket.Receive(databuffer);//知道数组中前count个是接收到的数据
            String hex = Encoding.ASCII.GetString(databuffer, 0, count);

            //string msgREceive = System.Text.Encoding.UTF8.GetString(databuffer, 0, count);
            //Console.WriteLine(msgREceive);

            //Console.ReadKey();//程序终止的太快,方便观察输出
            //关闭服务器端
            clientSocket.Close();//关闭与客户端的连接
            serverSocket.Close();//关闭服务器自身的连接
            return hex;
        }

模拟客户端

private static void NewMethod()
        {
            // 1.按照模拟工具上看 先new一个tcp服务

            //Parse将字符串转换为IP地址类型
            IPAddress myIP = IPAddress.Parse("192.168.88.1");
            //构造一个TcpClient类对象,TCP客户端
            TcpClient client = new TcpClient();
            //与TCP服务器连接
            client.Connect(myIP, 10067);
            Console.WriteLine("服务器已经连接...请输入对话内容...");

            //创建网络流,获取数据流
            NetworkStream stream = client.GetStream();
            //读数据流对象
            StreamReader sr = new StreamReader(stream);
            //写数据流对象
            StreamWriter sw = new StreamWriter(stream);

            while (true)
            {
                string msg = Console.ReadLine();
                sw.WriteLine(msg);
                sw.Flush();             //刷新流
                Console.WriteLine("服务器:" + sr.ReadLine());
            }
            client.Close();
            Console.Read();
            // 2.输入的数据转化为 16 进制传输
        }

 

标签:core,Console,传输数据,serverSocket,new,Net,IPAddress,连接,客户端
From: https://www.cnblogs.com/OneSeting/p/16876440.html

相关文章

  • 无法打开调试器端口(127.0.0.1:xxxx): java.net.BindException "Address already
    开启项目突然报错1099端口冲突和debug端口冲突,修改端口号没有用依旧冲突,查看端口进程为空,重新配置tomcat、重启电脑和关闭HyperV无效果。删除C:\Users\用户名\AppData\Lo......
  • Kubernetes(k8s)部署Promehteus监控
    一、概述Prometheus是一个开源监控系统,生态包括了很多组件,它们中的一些是可选的:主服务PrometheusServer负责抓取和存储时间序列数据客户库负责检测应用程序代码支持......
  • 试试将.NET7编译为WASM并在Docker上运行
    之前有听到说Docker支持Wasmtime了,刚好.NET7也支持WASM,就带大家来了解一下这个东西,顺便试试它怎么样。因为WASM(WebAssembly)一开始是一个给浏览器的技术,比起JS解释执行,W......
  • .net 4.0环境下支持 async 异步编程
      这时候编译器会报一个错误:CS1061“Task”未包含“GetAwaiter”的定义,并且找不到可接受第一个“Task”类型参数的可访问扩展方法“GetAwaiter”(是否缺少using指......
  • ASP.NET Core教程-Configuration(配置)-JWT
    更新记录转载请注明出处:2022年11月10日发布。2022年11月8日从笔记迁移到博客。JWT基础JWT是什么(WhatisJWT)JSONWebToken(JWT)是目前最流行的跨域身份验证解决......
  • .NET 7 AOT 的使用以及 .NET 与 Go 互相调用
    目录背景C#部分环境要求创建一个控制台项目体验AOT编译C#调用库函数减少体积C#导出函数C#调用C#生成的AOTGolang部分安装GCCGolang导出函数.NETC#和Golang......
  • 激光雷达-Resnet-推荐系统分析
    激光雷达-Resnet-推荐系统分析参考文献链接https://mp.weixin.qq.com/s/LoCJnKa8Ty2ytCbXS2jPowhttps://www.zhihu.com/question/64494691/answer/786270699?utm_campaig......
  • CSharp: Prototype Pattern in donet 6
     ///<summary>///原型模式PrototypePattern///</summary>publicinterfaceIColorPrototype{///<summary>///......
  • mac 开发C#,.net 工具推荐
    注意:Mac开发.net,一定要是.netcore以上的版本!!!!!!!!如果是不跨平台的.net只能用windows系统!!top1:第一名我还是觉得是IntelliJ家的Rider,虽然是收费的但是用起来真的丝......
  • CSharp: Singleton Pattern in donet 6
     ///<summary>///单例模式单件模式、SingletonPattern///</summary>publicabstractclassBaseGreeter{publicvirtualvoid......