【C#】制作TCP服务器

07-14 1026阅读

前言   

    

        当使用C#编TCP服务器是指使用传输控制协议(Transmission Control Protocol,TCP)作为通信协议的服务器程序。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,它能够在网络通信中确保数据的可靠传输。写一个TCP服务器(通常被称为上位机服务器)时,您可以使用System.Net.Sockets命名空间中的TcpListener和TcpClient类。以下是一个简单的TCP服务器示例,该服务器监听特定端口上的连接,并在接收到消息时回复客户端。

        本文使用到的Visual Studio 是微软(Microsoft)开发的一款强大的集成开发环境(IDE),它支持多种编程语言,包括 C#、C++、Visual Basic、F#、Python、JavaScript 等,并广泛用于开发各种类型的应用程序,如 Web 应用程序、桌面应用程序、移动应用程序、游戏、云服务等。

一、主要功能

1.监听连接请求:TCP服务器的主要功能之一是监听网络上的连接请求。它会在指定的网络端口上等待客户端的连接请求。

2.建立连接:当客户端请求与服务器建立连接时,TCP服务器会进行三次握手操作,以建立一个可靠的连接。

3.数据收发:一旦连接建立成功,服务器可以持续接收来自客户端的数据,并做出相应的处理和回应。TCP协议提供了错误纠正、流量控制和拥塞控制等功能,以确保数据传输的可靠性和有序性。

二、应用场景

TCP服务器在各种网络应用程序中都有广泛的应用,包括但不限于:

1.数据传输和文件传输:TCP服务器可以用于传输数据和文件,确保数据的完整性和可靠性。

2.网络通信:TCP服务器可以用作网络通信的中心节点,接收来自客户端的请求并提供相应的响应。

3.聊天和信息传递:多个客户端可以同时连接到TCP服务器进行即时通信,服务器可以接收客户端发送的消息,并将其转发给其他连接的客户端。

4.远程控制和远程访问:通过TCP服务器,客户端可以远程操作服务器的功能或获取服务器上的资源。

5.数据库管理:TCP服务器可以用于与数据库进行通信,并提供数据库管理功能,如查询、插入、更新、删除等。

6.Web服务器:TCP服务器在Web应用中扮演着重要角色,用于托管和提供网站和Web应用程序。当浏览器向服务器发出HTTP请求时,TCP服务器会接收和处理这些请求,并返回相应的资源。

三、特点

1.可靠性:TCP协议通过确认和重传机制来确保数据的可靠传输。

2.面向连接:TCP协议是一种面向连接的协议,它需要在数据传输之前先建立连接。

3.基于字节流:TCP协议将数据看作是无结构的字节流,它不关心数据的内容和意义。

4.全双工通信:TCP协议支持全双工通信,即数据可以在同一时间双向传输。

四、软件编程

1.界面设置

(1)在Visual Studio创建一个窗体项目

(如下图所示)

【C#】制作TCP服务器

(2)窗体设计

在工具箱找到相对应的工具放到设计里面(如下图所示)

【C#】制作TCP服务器

2.代码编写

(1)发送按钮编写

        如下所示

 private void uiButtonSend_Click(object sender, EventArgs e)
 {
     String str = this.uiTextBoxSend.Text;
     byte[] data = Encoding.Default.GetBytes(str);
     stream.Write(data, 0, data.Length);
 }

(2)连接服务器

        如下所示

 private void Form1_Load(object sender, EventArgs e)
 {
     tcpListener = new TcpListener(IPAddress.Parse("10.92.200.165"), 3400);
     tcpListener.Start();
     new Task(() =>
     {
         //while (true)
         {
             tcpClient = tcpListener.AcceptTcpClient();
             stream = tcpClient.GetStream();
             new Task(() => MyReceiveData(tcpClient)).Start();
         }
     }).Start();
 }

(3)总体代码

using Sunny.UI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Tpc服务
{
    public partial class Form1 : UIForm
    {
        private TcpListener tcpListener;
        private TcpClient tcpClient;
        private NetworkStream stream;
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            tcpListener = new TcpListener(IPAddress.Parse("10.92.200.165"), 3400);
            tcpListener.Start();
            new Task(() =>
            {
                //while (true)
                {
                    tcpClient = tcpListener.AcceptTcpClient();
                    stream = tcpClient.GetStream();
                    new Task(() => MyReceiveData(tcpClient)).Start();
                }
            }).Start();
        }
        private void MyReceiveData(TcpClient tcpClient )
        {
            byte[] data = new byte[1024];
            while (true)
            {
                int count = stream.Read(data, 0, 1024);
                String str = Encoding.Default.GetString(data, 0, count);
                this.Invoke(new Action(() =>
                {
                    this.uiTextBoxReceive.Text += str + "\r\n";
                }));
            }
        }
        private void uiButtonSend_Click(object sender, EventArgs e)
        {
            String str = this.uiTextBoxSend.Text;
            byte[] data = Encoding.Default.GetBytes(str);
            stream.Write(data, 0, data.Length);
        }
        private void uiTextBoxReceive_TextChanged(object sender, EventArgs e)
        {
        }
        private void uiTextBoxSend_TextChanged(object sender, EventArgs e)
        {
        }
    }
}

五、工程架构

【C#】制作TCP服务器

六、总结

        在配置TCP服务器时,需要确认网络环境、开放相应的端口、确认服务运行状态等。可以使用telnet或nc等工具测试TCP连接是否正常。

        TCP服务器是一种基于TCP协议的服务器程序,它在网络通信中起着重要的角色。通过使用TCP协议,服务器可以保证数据的可靠性和顺序性,确保数据的正确传输。TCP服务器广泛应用于各种网络应用程序中,如网络游戏、网站服务器、文件传输、邮件服务器等。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]