C# TcpListener vs Socket

C# TcpListener vs Socket,c#,sockets,C#,Sockets,您好,我想问一下使用此选项的区别: public TcpListener Listener; public TcpClient Client; Listener = new TcpListener(DeafultPort); Client = default(TcpClient); Listener.Start(); 这是: serverSocket = new Socket(AddressFamily.InterNetwork,

您好,我想问一下使用此选项的区别:

public TcpListener Listener;
public TcpClient Client;

Listener = new TcpListener(DeafultPort);
Client = default(TcpClient);
Listener.Start();
这是:

serverSocket = new Socket(AddressFamily.InterNetwork, 
                                      SocketType.Stream, 
                                      ProtocolType.Tcp);

IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 1000);
我也想知道,如果我使用第一种选择,两者之间的区别是什么

Listener.BeginAcceptSocket()

如果我使用第二个选项,这两条线到底是什么

serverSocket.Bind(ipEndPoint);
serverSocket.Listen(4);

感谢您的回答

Socket和TcpListener/TcpClient之间的区别在于TcpListener/TcpClient比Socket更易于使用。Socket可以做TcpListener/TcpClient所能做的一切。如果您不熟悉网络编程,建议使用TcpListener/TcpClient。对于大多数任务,TcpClient/TcpListener的性能类似。只有当你有问题或没有足够的功能,你应该考虑插座。
我知道我的答案在技术上是不正确的,但在这种情况下,这就足够了。

对于任何严肃的解决方案,使用套接字而不是TcpClient。它提供了更多的控制,当使用任务或线程以及带有字节缓冲区的异步方法时,这通常是必要的。

可能的重复可能更适合作为注释,因为它实际上没有提供两个类之间的差异。
serverSocket.Bind(ipEndPoint);
serverSocket.Listen(4);