gpt4 book ai didi

c# - 我们如何在 C# 中使用 TcpListener 发送数据?

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:47 24 4
gpt4 key购买 nike

根据MSDN:

The TcpListener class provides simple methods that listen for and accept incoming connection requests in blocking synchronous mode.

我的团队领导要求使用 TcpListener 发送数据。是否有任何方式或可行使用TCPListerner接收发送数据?

我已经知道如何使用 TCPListener 接收数据,不知道如何使用它发送数据。我知道 TCPClient 可用于发送数据,但我们的团队领导想使用 TCPListerner 来发送数据。

请告诉我您的意见,并让我知道是否可以使用一些示例代码。

最佳答案

不是真的。 TcpListener 的目的是接受一个新的连接。

但是,您从 TcpListener 获得的流对象(一旦建立连接)可用于读取和写入。

查看这里了解更多详情:

https://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener%28v=vs.110%29.aspx

using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;

class MyTcpListener
{
public static void Main()
{
TcpListener server=null;
try
{
// Set the TcpListener on port 13000.
Int32 port = 13000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");

// TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);

// Start listening for client requests.
server.Start();

// Buffer for reading data
Byte[] bytes = new Byte[256];
String data = null;

// Enter the listening loop.
while(true)
{
Console.Write("Waiting for a connection... ");

// Perform a blocking call to accept requests.
// You could also user server.AcceptSocket() here.
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Connected!");

data = null;

// Get a stream object for reading and writing
NetworkStream stream = client.GetStream();

int i;

// Loop to receive all the data sent by the client.
while((i = stream.Read(bytes, 0, bytes.Length))!=0)
{
// Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
Console.WriteLine("Received: {0}", data);

// Process the data sent by the client.
data = data.ToUpper();

byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

// Send back a response.
stream.Write(msg, 0, msg.Length);
Console.WriteLine("Sent: {0}", data);
}

// Shutdown and end connection
client.Close();
}
}
catch(SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
finally
{
// Stop listening for new clients.
server.Stop();
}


Console.WriteLine("\nHit enter to continue...");
Console.Read();
}
}

关于c# - 我们如何在 C# 中使用 TcpListener 发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33750754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com