添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public:
 System::Net::Sockets::TcpClient ^ AcceptTcpClient();
public System.Net.Sockets.TcpClient AcceptTcpClient ();
member this.AcceptTcpClient : unit -> System.Net.Sockets.TcpClient
Public Function AcceptTcpClient () As TcpClient
* This program shows how to use the TcpListener class. * It creates a TcpListener that listens on the specified port (13000). * To run this program at the command line you enter: * cs_tcpserver * Any TcpClient that wants to use this server * has to explicitly connect to an address obtained by the combination of * the server on which this TcpServer is running and the port 13000. * This TcpServer simply echoes back the message sent by the TcpClient, after * translating it into uppercase. #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Net; using namespace System::Net::Sockets; using namespace System::Text; int main() // Set the TcpListener on port 13000. Int32 port = 13000; TcpListener^ server = gcnew TcpListener(IPAddress::Any, port); // Start listening for client requests. server->Start(); // Buffer for reading data array<Byte>^bytes = gcnew array<Byte>(256); String^ data = nullptr; // Enter the listening loop. while ( true ) Console::Write( "Waiting for a connection... " ); // Perform a blocking call to accept requests. // You could also use server.AcceptSocket() here. TcpClient^ client = server->AcceptTcpClient(); Console::WriteLine( "Connected!" ); data = nullptr; // Get a stream object for reading and writing NetworkStream^ stream = client->GetStream(); Int32 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( String::Format( "Received: {0}", data ) ); // Process the data sent by the client. data = data->ToUpper(); array<Byte>^msg = System::Text::Encoding::ASCII->GetBytes( data ); // Send back a response. stream->Write( msg, 0, msg->Length ); Console::WriteLine( String::Format( "Sent: {0}", data ) ); // Shutdown and end connection client->Close(); catch ( SocketException^ e ) Console::WriteLine( "SocketException: {0}", e ); Console::WriteLine( "\nHit enter to continue..." ); Console::Read(); * The following sample is intended to demonstrate how to use a * TcpListener for synchronous communcation with a TCP client * It creates a TcpListener that listens on the specified port (13000). * Any TCP client that wants to use this TcpListener has to explicitly connect * to an address obtained by the combination of the server * on which this TcpListener is running and the port 13000. * This TcpListener simply echoes back the message sent by the client * after translating it into uppercase. * Refer to the related client in the TcpClient class. using System; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; using System.Threading; public class TcpListenerSample static void Main(string[] args) // set the TcpListener on port 13000 int port = 13000; TcpListener server = new TcpListener(IPAddress.Any, port); // Start listening for client requests server.Start(); // Buffer for reading data byte[] bytes = new byte[1024]; string data; //Enter the listening loop while (true) Console.Write("Waiting for a connection... "); // Perform a blocking call to accept requests. // You could also use server.AcceptSocket() here. TcpClient client = server.AcceptTcpClient(); Console.WriteLine("Connected!"); // Get a stream object for reading and writing NetworkStream stream = client.GetStream(); int i; // Loop to receive all the data sent by the client. i = stream.Read(bytes, 0, bytes.Length); while (i != 0) // Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); Console.WriteLine(String.Format("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(String.Format("Sent: {0}", data)); i = stream.Read(bytes, 0, bytes.Length); // Shutdown and end connection client.Close(); catch (SocketException e) Console.WriteLine("SocketException: {0}", e); Console.WriteLine("Hit enter to continue..."); Console.Read(); ' The following sample is intended to demonstrate how to use a ' TcpListener for synchronous communcation with a TCP client ' It creates a TcpListener that connects to the specified port (13000). ' Any TCP client that wants to use this TcpListener has to explicitly connect ' to an address obtained by the combination of the server ' on which this TcpListener is running and the port 13000. ' This TcpListener simply echoes back the message sent by the client ' after translating it into uppercase. ' Refer to the related client in the TcpClient class. Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Text Class MyTcpListener Public Shared Sub Main() ' Set the TcpListener on port 13000. Dim port As Int32 = 13000 Dim server As New TcpListener(IPAddress.Any, port) ' Start listening for client requests. server.Start() ' Buffer for reading data Dim bytes(1024) As [Byte] Dim data As [String] = Nothing ' Enter the listening loop. While True Console.Write("Waiting for a connection... ") ' Perform a blocking call to accept requests. ' You could also use server.AcceptSocket() here. Dim client As TcpClient = server.AcceptTcpClient() Console.WriteLine("Connected!") data = Nothing ' Get a stream object for reading and writing Dim stream As NetworkStream = client.GetStream() Dim i As Int32 ' Loop to receive all the data sent by the client. i = stream.Read(bytes, 0, bytes.Length) While (i <> 0) ' Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i) Console.WriteLine([String].Format("Received: {0}", data)) ' Process the data sent by the client. data = data.ToUpper() Dim msg As [Byte]() = System.Text.Encoding.ASCII.GetBytes(data) ' Send back a response. stream.Write(msg, 0, msg.Length) Console.WriteLine([String].Format("Sent: {0}", data)) i = stream.Read(bytes, 0, bytes.Length) End While ' Shutdown and end connection client.Close() End While Catch e As SocketException Console.WriteLine("SocketException: {0}", e) End Try Console.WriteLine(ControlChars.Cr + "Hit enter to continue...") Console.Read() End Sub End Class

AcceptTcpClient 是一种阻止方法,它返回 TcpClient 可用于发送和接收数据的阻止方法。 Pending 如果想要避免阻止,请使用此方法来确定传入连接队列中是否提供连接请求。

使用该方法 TcpClient.GetStream 获取返回 TcpClient 的基础 NetworkStream 。 这将 NetworkStream 为你提供使用远程主机发送和接收的方法。 使用此方法 TcpClient 时,请务必调用其 Close 方法。 如果想要比 TcpClient 产品/服务更大的灵活性,请考虑使用 AcceptSocket

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework中的网络跟踪