跳至页脚内容
.NET 帮助

TCP .NET(开发人员如何使用)

现代软件程序必须能够在当今相互连接的世界中可靠且高效地通过网络发送数据。 互联网的主要网络协议TCP/IP,提供了一个在各种网络条件下进行数据传输的稳定框架。 这一协议套件使设备通信成为可能,并支持包括文件传输、远程访问和实时通信在内的多种用例。

相反,IronPDF 是一个功能丰富的.NET库,用于创建和修改PDF文件。 IronPDF 是文件生成、报告和数据可视化活动的有用工具,因为它允许开发人员从HTML内容、URL或原始数据中动态创建PDF文件。

In this post, we explore how to integrate IronPDF with TCP .Net to facilitate effective document generation in .NET applications. 通过整合这些技术,程序员可以通过使用网络通信获得数据、与远程系统进行交互,从而在其应用程序中提高生产率和可扩展性,并创建动态PDF页面。

如何使用TCP/IP通信

  1. Visual Studio中创建一个新的C#项目。
  2. 引入命名空间 System.Net 和 System.Net.Sockets。
  3. 创建一个TCP服务器和TCP客户端程序。 指定IP地址和端口号。
  4. 将信息从服务器发送到客户端。 将客户端收到的服务器信息记录到报告中。
  5. 关闭连接。

TCP .NET简介

TCP/IP(传输控制协议/互联网协议)通信协议集负责通过网络发送和接收数据,主要是互联网。 TCP/IP提供了一个计算机和设备通信的标准化框架,允许通过互连的网络发送数据。 TCP/IP有多个层,每一层负责处理通信的特定方面。

互联网协议(IP),负责管理网络上设备间数据包的地址和路由,是TCP/IP的基本组成部分。IP为连接到网络的每个设备分配一个唯一的IP地址,或网络地址,使得数据可以被送到和从指定位置接收。

TCP协议的特性

1. 可靠性

TCP 使用序列号、确认以及重传等技术来保证数据的可靠传递。 发送者发送数据包,并等待接收者确认数据包已成功传递。 如果在预定时间内未收到确认,发送者会重传数据包。此可靠性机制有助于避免传输数据丢失或损坏。

2. 面向连接的通信

在发送数据之前,TCP协议在发送者和接收者之间建立连接。 在连接设置期间,发送者和接收者通过三次握手过程来实现同步和决定通信设定。数据可以在双方之间往返传递,直到连接中断。

3. 流量管理

TCP使用流量控制方法来管理数据从发送者到接收者的传输速度。 流量控制使用滑动窗口方法,以防止发送者发送过多数据给接收者。 发送者可以响应接收者公布的可用缓冲区空间来调整其传输速率。 通过这样做,有效利用网络资源,避免拥塞或缓冲区溢出。

TCP 入门

在 Visual Studio 中创建一个新项目

要打开Visual Studio应用程序,请选择文件菜单。 在选择“新建项目”后,选择“控制台应用程序”。

TCP .NET(对开发人员的工作原理):图1 - Visual Studio应用程序页面

选择文件位置后,在指定的文本字段中输入项目名称。 接下来,在选择所需的.NET Framework后,单击创建按钮,如下例所示。

TCP .NET(对开发人员的工作原理):图2 - 为项目选择相应的.NET Framework

在 C# 项目中设置 TCP

网络 System.NET 基类库包括默认在您的C#项目中应可用的 sockets 命名空间。 它提供了有关如何操作与 sockets的类,网络通信端点。

在 Windows 控制台和表单中实现TCP

TCP受多种C#应用程序类型支持,包括Windows Forms(WinForms)及Windows控制台。 尽管每个框架的实现不同,但基本概念始终相同:TCP/IP作为您的应用程序的客户端和服务器之间通信的容器。

使用TCP的客户端和服务器之间通信的基本示例

TCP代码分为两个部分:一个是服务器,另一个是客户端。 服务器代码使用IP地址和端口将消息发送到客户端,客户端接收数据并相应处理。

TCP服务器代码

// Basic TCP Server Code in C#
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;

class TcpServer
{
    static void Main()
    {
        // Set up the server endpoint with localhost IP address and a specified port
        var endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472);

        // Create a new TcpListener and start listening for incoming connections
        TcpListener listener = new TcpListener(endPoint);
        listener.Start();
        Console.WriteLine("Server listening...");

        // Accept a TcpClient once a connection attempt is made
        TcpClient client = listener.AcceptTcpClient();
        Console.WriteLine("Client connected");

        // Obtain a NetworkStream object for reading and writing data
        NetworkStream stream = client.GetStream();
        StreamWriter writer = new StreamWriter(stream);

        // Write a message to the client's stream and flush to ensure it's sent
        writer.WriteLine("Hello from the server");
        writer.Flush();

        Console.WriteLine("Message sent from server");
        // Close the client connection
        client.Close();

        // Stop the server listener after communication
        listener.Stop();
    }
}
// Basic TCP Server Code in C#
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;

class TcpServer
{
    static void Main()
    {
        // Set up the server endpoint with localhost IP address and a specified port
        var endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472);

        // Create a new TcpListener and start listening for incoming connections
        TcpListener listener = new TcpListener(endPoint);
        listener.Start();
        Console.WriteLine("Server listening...");

        // Accept a TcpClient once a connection attempt is made
        TcpClient client = listener.AcceptTcpClient();
        Console.WriteLine("Client connected");

        // Obtain a NetworkStream object for reading and writing data
        NetworkStream stream = client.GetStream();
        StreamWriter writer = new StreamWriter(stream);

        // Write a message to the client's stream and flush to ensure it's sent
        writer.WriteLine("Hello from the server");
        writer.Flush();

        Console.WriteLine("Message sent from server");
        // Close the client connection
        client.Close();

        // Stop the server listener after communication
        listener.Stop();
    }
}
' Basic TCP Server Code in C#
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.IO

Friend Class TcpServer
	Shared Sub Main()
		' Set up the server endpoint with localhost IP address and a specified port
		Dim endPoint = New IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472)

		' Create a new TcpListener and start listening for incoming connections
		Dim listener As New TcpListener(endPoint)
		listener.Start()
		Console.WriteLine("Server listening...")

		' Accept a TcpClient once a connection attempt is made
		Dim client As TcpClient = listener.AcceptTcpClient()
		Console.WriteLine("Client connected")

		' Obtain a NetworkStream object for reading and writing data
		Dim stream As NetworkStream = client.GetStream()
		Dim writer As New StreamWriter(stream)

		' Write a message to the client's stream and flush to ensure it's sent
		writer.WriteLine("Hello from the server")
		writer.Flush()

		Console.WriteLine("Message sent from server")
		' Close the client connection
		client.Close()

		' Stop the server listener after communication
		listener.Stop()
	End Sub
End Class
$vbLabelText   $csharpLabel

在这个服务器代码中,我们创建了一个 TCP 服务器代码,将数据包发送到连接的客户端。 服务器接收传入的连接并通过TCP socket 发送信息。

TCP 客户端代码

// TCP client code
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;

class TcpClientExample
{
    static void Main()
    {
        // Set up the client to connect to the same endpoint as the server
        var endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472);

        // Initialize a new TcpClient and connect to the server endpoint
        TcpClient client = new TcpClient();
        client.Connect(endPoint);

        // Use a NetworkStream to read data received from the server
        NetworkStream stream = client.GetStream();
        StreamReader reader = new StreamReader(stream);

        // Read the response sent by the server and display it
        string response = reader.ReadLine();
        Console.WriteLine($"Message from server: {response}");

        // Close the connection once done
        client.Close();
    }
}
// TCP client code
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;

class TcpClientExample
{
    static void Main()
    {
        // Set up the client to connect to the same endpoint as the server
        var endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472);

        // Initialize a new TcpClient and connect to the server endpoint
        TcpClient client = new TcpClient();
        client.Connect(endPoint);

        // Use a NetworkStream to read data received from the server
        NetworkStream stream = client.GetStream();
        StreamReader reader = new StreamReader(stream);

        // Read the response sent by the server and display it
        string response = reader.ReadLine();
        Console.WriteLine($"Message from server: {response}");

        // Close the connection once done
        client.Close();
    }
}
' TCP client code
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.IO

Friend Class TcpClientExample
	Shared Sub Main()
		' Set up the client to connect to the same endpoint as the server
		Dim endPoint = New IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472)

		' Initialize a new TcpClient and connect to the server endpoint
		Dim client As New TcpClient()
		client.Connect(endPoint)

		' Use a NetworkStream to read data received from the server
		Dim stream As NetworkStream = client.GetStream()
		Dim reader As New StreamReader(stream)

		' Read the response sent by the server and display it
		Dim response As String = reader.ReadLine()
		Console.WriteLine($"Message from server: {response}")

		' Close the connection once done
		client.Close()
	End Sub
End Class
$vbLabelText   $csharpLabel

在上述客户端代码中,该代码连接到 TCP socket并读取从TCP服务器接收到的字符串信息,然后在控制台上显示该信息。 此示例说明了在 .NET 环境中使用 TCP 的基本客户端-服务器通信。

TCP .NET(对开发人员的工作原理):图3

TCP 协议操作

套接字管理

TCP sockets 用于在端点之间连接和交换数据。 要通过 TCP 进行交互,应用程序需要在必要时创建、绑定、监听、接受、连接和关闭 sockets。

安全性

通过使用 TCP 和安全协议(如 TLS/SSL)传输的数据可以加密,以保证机密性和完整性。

流量控制

通过使用流量控制方法,TCP确保发送方不会向接收方发送过多数据。 为此,通过 TCP 窗口动态调整在接收到确认之前可以传输的数据量。

基本的客户端和服务器连接

要连接到 TCP 服务器,您可以构建一个 TCP 客户端。 为此,使用 TcpClient 类。

TcpClient client = new TcpClient();
var endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472);
client.Connect(endPoint);
TcpClient client = new TcpClient();
var endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472);
client.Connect(endPoint);
Dim client As New TcpClient()
Dim endPoint = New IPEndPoint(IPAddress.Parse("127.0.0.1"), 57472)
client.Connect(endPoint)
$vbLabelText   $csharpLabel

将 TCP 与 IronPDF 集成

同时使用 TCP 和 IronPDF

在 .NET 应用程序中将 TCP/IP 网络与IronPDF合并,开发者可以根据通过 TCP/IP 连接接收到的数据动态生成 PDF 文档。 因为这个接口允许实时创建和定制文档,所以可以用在各种目的中,包括基于实时数据流生成结算单、发票和报告。

安装IronPDF

  • 打开 Visual Studio 项目。
  • 选择“工具” > “NuGet 包管理器” > “包管理器控制台”。

    • 在包管理器控制台中,输入以下命令:
    Install-Package IronPdf
  • 或者,您可以使用解决方案的 NuGet 包管理器安装 IronPDF。
    • 在搜索结果中浏览 IronPDF 包,选中它然后点击“安装”按钮。 ### 4.2 使用NuGet包管理器控制台安装

TCP .NET(对开发人员的工作原理):图4 - 使用管理 NuGet 包进行解决方案安装 IronPDF

  • NuGet 将安装 IronPDF 包及您的项目所需的任何依赖项。
  • 安装后,可以在您的项目中使用 IronPDF。

通过NuGet网站安装

访问NuGet 网站上的 IronPDF 页面了解更多关于 IronPDF 的功能、兼容性和其他下载选项。

使用DLL安装

或者,您可以通过使用其 DLL 文件直接将 IronPDF 集成到您的项目中。要下载包含 DLL 的 ZIP 文件,请单击IronPDF ZIP 文件下载页面。 一旦解压,将 DLL 包含到您的项目中。

实施逻辑

这种集成可以实现实时的文档创建和个性化,使其适用于各种用例,比如基于实时数据流生成报告、发票和对账单。

  1. 建立连接: TCP提供了一种可靠的面向连接的通信方法。连接建立过程由三个步骤组成:SYN,SYN-ACK和ACK。 这保证服务器和客户端已准备好交换数据。
  2. 发送数据:一旦建立连接,数据就可以在端点间传递。 TCP保证数据将准确地并按照正确的顺序发送。 数据以分段方式分开,各自传输,然后在接收器端组合。
  3. 接收数据:TCP在接收端缓冲传入的数据,直到应用程序可以处理它。 丢失或损坏的段由接收器请求重传,同时确认已接收到的段。
  4. 保存 PDF 并通知:使用 IronPDF,根据提供的数据动态创建 PDF 文档。 使用您接收到的数据创建 HTML 内容或模板。 然后,利用 IronPDF 的 API 将该 HTML 内容转换为 PDF 文档。
// IronPDF code example to create a PDF with network-received data
using System;
using IronPdf;

class PdfGenerator
{
    public static void GeneratePdf(string response)
    {
        // Create a PDF renderer
        var Renderer = new ChromePdfRenderer();

        // Render an HTML snippet to a PDF and save it
        Renderer.RenderHtmlAsPdf("<h1>Dynamic PDF Document</h1><p>Data from network: " + response + "</p>").SaveAs("document.pdf");

        Console.WriteLine("PDF generated and saved as document.pdf");
    }
}
// IronPDF code example to create a PDF with network-received data
using System;
using IronPdf;

class PdfGenerator
{
    public static void GeneratePdf(string response)
    {
        // Create a PDF renderer
        var Renderer = new ChromePdfRenderer();

        // Render an HTML snippet to a PDF and save it
        Renderer.RenderHtmlAsPdf("<h1>Dynamic PDF Document</h1><p>Data from network: " + response + "</p>").SaveAs("document.pdf");

        Console.WriteLine("PDF generated and saved as document.pdf");
    }
}
' IronPDF code example to create a PDF with network-received data
Imports System
Imports IronPdf

Friend Class PdfGenerator
	Public Shared Sub GeneratePdf(ByVal response As String)
		' Create a PDF renderer
		Dim Renderer = New ChromePdfRenderer()

		' Render an HTML snippet to a PDF and save it
		Renderer.RenderHtmlAsPdf("<h1>Dynamic PDF Document</h1><p>Data from network: " & response & "</p>").SaveAs("document.pdf")

		Console.WriteLine("PDF generated and saved as document.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

有关代码示例的更多信息,请参阅从 HTML 创建 PDF 的 IronPDF 文档

以下是执行输出:

TCP .NET(对开发人员的工作原理):图5 - 使用 TCP .NET 响应和 IronPDF 生成的输出PDF。

结论

In conclusion, a strong method for dynamically creating PDF documents based on real-time data received via a network connection is provided by the integration of TCP/IP networking with IronPDF in .NET applications. 通过这种方法,开发者可以构建适应多种行业和用例的高效灵活的文档创建系统。

开发者可以通过 TCP/IP 网络可靠地连接到远程服务器或设备,以接收实时数据流,这些数据流 IronPDF 可以轻松纳入PDF出版物中。 借助此集成,开发人员可以即时创建个性化的报告、账单、对账单和其他文档,而无需人工干预。

$799 Lite 包括IronPDF的永久许可证、一年的软件维护和库升级。 访问 Iron Software 网站了解更多关于 Iron Software 库的信息。

常见问题解答

如何在C#中将HTML转换为PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法将 HTML 字符串转换为 PDF。此外,您还可以使用 RenderHtmlFileAsPdf 方法将 HTML 文件转换为 PDF。

.NET应用程序中TCP/IP的重要性是什么?

TCP/IP在.NET应用程序中至关重要,因为它实现了网络上的可靠数据传输,支持文件传输、远程访问和设备之间的实时通信等场景。

如何在.NET应用程序中集成PDF生成与TCP?

您可以使用IronPDF在.NET应用程序中集成PDF生成。这允许从通过TCP连接接收到的数据实时创建PDF文档,非常适合生成动态报告或发票。

如何在C#中设置TCP服务器-客户端通信?

要在C#中设置TCP服务器-客户端通信,使用System.NetSystem.Net.Sockets命名空间。启动一个使用指定IP地址和端口号通信的服务器和客户端。

使用IronPDF进行.NET中的文档生成有什么好处?

IronPDF提供了一个全面的套件,可以动态创建和修改PDF。这在与TCP/IP协议集成时,特别有助于基于实时数据生成文档,如报告和发票。

在 .NET 项目中安装 IronPDF 的过程是什么?

IronPDF可以通过Visual Studio中的NuGet包管理器安装在.NET项目中。在包管理器控制台中使用命令Install-Package IronPdf或通过NuGet包管理器用户界面搜索并安装。

TCP/IP能否支持实时PDF文档创建?

是的,当使用IronPDF时,TCP/IP支持实时PDF文档创建。它允许将通过网络接收到的实时数据包含在PDF文档中,从而实现实时报告和发票的创建。

IronPDF如何增强.NET应用程序中的文档生成?

IronPDF通过允许开发人员从HTML内容动态创建、编辑和渲染PDF文档,增强了文档生成,支持在.NET应用程序中的强大报告和数据可视化能力。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。