TcpListener vs Socket

Vac*_*cko 9 c# sockets

您好我想问一下使用它有什么区别:

public TcpListener Listener;
public TcpClient Client;

Listener = new TcpListener(DeafultPort);
Client = default(TcpClient);
Listener.Start();
Run Code Online (Sandbox Code Playgroud)

还有这个 :

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

IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 1000);
Run Code Online (Sandbox Code Playgroud)

而且我想知道我是否使用第一个选项有什么区别

Listener.BeginAcceptSocket()
Run Code Online (Sandbox Code Playgroud)

Listener.Server.BeginAccept()
Run Code Online (Sandbox Code Playgroud)

如果我使用第二个选项这两行究竟是什么?

serverSocket.Bind(ipEndPoint);
serverSocket.Listen(4);
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答

Sya*_*hya 15

Socket和TcpListener/TcpClient之间的区别在于TcpListener/TcpClient比Socket更容易使用.Socket可以完成TcpListener/TcpClient可以执行的所有操作.如果您不熟悉网络编程,建议使用TcpListener/TcpClient.对于大多数任务,TcpClient/TcpListener的性能类似.只有当您遇到问题或功能不足时,才应考虑套接字.

我知道我的答案在技术上并不正确,但在这种情况下,这就足够了.