C#网络TCP服务器端的实现

这篇具有很好参考价值的文章主要介绍了C#网络TCP服务器端的实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、实现代码

private const int BACK_LOG = 5;
        private Socket tcpServer;
        private Socket tcpClient1;
        private CancellationTokenSource cts = new CancellationTokenSource();
        private void btServerStart_Click(object sender, EventArgs e)
        {
            if (this.btServerStart.Text == "打开")
            {
                //Socket实例化
                tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                //创建EndPoint
                EndPoint ep = new IPEndPoint(IPAddress.Parse(this.tbServerIPAddress.Text), int.Parse(this.tbServerPort.Text));
                try
                {
                    //绑定
                    tcpServer.Bind(ep);
                }catch(Exception ex)
                {
                    MessageBox.Show("服务器打开失败:" + ex.Message);
                    return;
                }
                MessageBox.Show("服务器打开成功");
                this.btServerStart.Text = "关闭";
                tcpServer.Listen(BACK_LOG);
                Task.Run(new Action(() =>
                {
                    ListenConnection();
                }));
            }
            else
            {
                tcpServer?.Close();
                this.btServerStart.Text = "打开";
            }
        }

        private void ListenConnection()
        {
            while (true)
            {
                Socket tcpClient = tcpServer.Accept();
                tcpClient1 = tcpClient;
                Task.Run(new Action(() =>
                {
                    ReceiveSource(tcpClient);
                }));
            }
        }

        private void ReceiveSource(Socket tcpClient)
        {
            while (!cts.IsCancellationRequested)
            {
                byte[] buffer = new byte[1024 * 10];
                int length = -1;
                try
                {
                    length = tcpClient.Receive(buffer, SocketFlags.None);
                }
                catch (Exception ex)
                {
                    break;
                }
                if (length > 0)
                {
                    byte[] result = new byte[length];
                    Buffer.BlockCopy(buffer, 0, result, 0, length);
                    ReceiveDataDisplay(result);
                }
            }
        }

        private void ReceiveDataDisplay(byte[] result)
        {
            string str = System.Text.Encoding.Default.GetString(result);
            if (tbServerReceiver.InvokeRequired)
            {
                MethodInvoker mi = delegate ()
                {
                    string str1 = tbServerReceiver.Text;
                    tbServerReceiver.Text = str1 +Environment.NewLine + str;
                };
                tbServerReceiver.Invoke(mi);
            }
            else
            {
                string str1 = tbServerReceiver.Text;
                tbServerReceiver.Text = str1 + "/n" + str;
            }
        }

        private void btServerSend_Click(object sender, EventArgs e)
        {
            if (tcpClient1.Connected)
            {
                string str = this.tbServerSender.Text;
                if (str.Length > 0)
                {
                    byte[] b = System.Text.Encoding.Default.GetBytes(str);
                    try
                    {
                        tcpClient1.Send(b);
                    }catch(Exception ex)
                    {
                        MessageBox.Show("发送失败");
                        return;
                    }
                }
                
            }
        }

2、运行效果
C#网络TCP服务器端的实现文章来源地址https://www.toymoban.com/news/detail-505820.html

到了这里,关于C#网络TCP服务器端的实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP服务器和客户端的创建步骤

    一、创建套接字(socket函数): 通信域选择IPV4网络协议、套接字类型选择流式; 二、填充服务器的网络信息结构体: 1.定义网络信息结构体变量; 2.求出结构体变量的内存空间大小; 3.结构体清零; 4.使用IPV4网络协议; 5.预留给在终端输入的网络字节序的端口号; 6.预留给

    2024年01月17日
    浏览(32)
  • TCP的服务器和客户端的通信

    实现不同主机之间的进程间通信(服务器和客户端的通信),并且一个服务器可以处理很多个客户端的请求。 协议:通信双方所遵守的通信规则。 网络体系结构:指网络的层次结构和每层所使用的协议的集合。 网络采用分而治之的方法设计,将网络的功能划分为不同的模块

    2023年04月23日
    浏览(27)
  • 网络编程3——TCP Socket实现的客户端服务器通信完整代码(详细注释帮你快速理解)

    本人是一个刚刚上路的IT新兵,菜鸟!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果这篇文章可以帮助到你,劳请大家点赞转发支持一下! 今天分享的内容是TCP流套接字实现的客户端与服务器的通信,一定要理解 DatagramSocket,DatagramPacket 这两个类的作用以及方法

    2024年02月12日
    浏览(44)
  • Java【网络编程2】使用 TCP 的 Socket API 实现客户端服务器通信(保姆级教学, 附代码)

    📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通过博客输出所学知识 📘如果本篇对你有帮助, 烦请点赞关注支持一波, 感激不尽 📙 希望我的专栏能够帮助到你: JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统

    2024年02月05日
    浏览(44)
  • Qt实践:TCP服务器和客户端的设计

    Qt:5.12.2 Qt Creator:4.11.1 通信方式:TCPIP 语言:C++ 客户端的界面UI包含服务器IP、服务器端口、以及一些简单的功能,数据可选ASCLL及HEX格式。当未与服务器建立连接时,该客户端的部分控件设置为禁用。 \\\'getIp()\\\'函数可以根据不同的操作系统获取本地 IP 地址。在 Windows 系统下

    2024年02月03日
    浏览(32)
  • 【JavaEE初阶】 TCP服务器与客户端的搭建

    TCP服务器与客户端的搭建需要借助以下API TCP之间通信通过流进行传输,无论是服务器还是客户端:读取内容用输入流,写入内容用输出流 ServerSocket 是创建TCP服务端Socket的API。 ServerSocket 构造方法 : 方法签名 方法说明 ServerSocket(int port) 创建一个服务端流套接字Socket,并绑定

    2024年02月05日
    浏览(27)
  • [ C# ] C#中TCP服务端的实现

           本文所用例子为个人学习的小结,如有不足之处请各位多多海涵,欢迎小伙伴一起学习进步,如果想法可在评论区指出,我会尽快回复您,不胜感激!         所公布代码或截图均为运行成功后展示。         嘿嘿,小小免责声明一下!部分代码可能与其他网

    2024年01月18日
    浏览(28)
  • 【TCP/IP】多进程服务器的实现(进阶) - 多进程服务器模型及代码实现

             经过前面的铺垫,我们已经具备实现并发服务器的基础了,接下来让我们尝试将之前的单任务回声服务器改装成多任务并发模式吧!         在编写代码前,先让我们大致将多任务(回声)服务器的模型抽象一下,如下图所示:         当客户端请求服务(

    2024年02月08日
    浏览(135)
  • 网络字节序——TCP接口及其实现简单TCP服务器

    简单TCP服务器的实现 TCP区别于UDP在于要设置套接字为监控状态,即TCP是面向链接,因此TCP套接字需要设置为监听状态 socket函数原型 domain 表示协议族,常用的有 AF_INET (IPv4)和 AF_INET6 (IPv6)。 type 表示Socket类型,常用的有 SOCK_STREAM (TCP)和 SOCK_DGRAM (UDP)。 protocol 通常可

    2024年02月10日
    浏览(34)
  • 【网络编程】demo版TCP网络服务器实现

    UDP和TCP的区别: 对于TCP协议有几个特点: 1️⃣ 传输层协议 2️⃣ 有连接(正式通信前要先建立连接) 3️⃣ 可靠传输(在内部帮我们做可靠传输工作) 4️⃣ 面向字节流 对于UDP协议有几个特点: 1️⃣ 传输层协议 2️⃣ 无连接 3️⃣ 不可靠传输 4️⃣ 面向数据报 可以看到

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包