您好我想问一下使用它有什么区别:
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()
和
Listener.Server.BeginAccept()
如果我使用第二个选项,这两行究竟是什么?
serverSocket.Bind(ipEndPoint);
serverSocket.Listen(4);
感谢您的回答
答案 0 :(得分:13)
Socket和TcpListener / TcpClient之间的区别在于TcpListener / TcpClient比Socket更容易使用。 Socket可以完成TcpListener / TcpClient可以执行的所有操作。如果您不熟悉网络编程,建议使用TcpListener / TcpClient。对于大多数任务,TcpClient / TcpListener的性能类似。只有当您遇到问题或功能不足时,才应考虑套接字。
我知道我的回答在技术上并不正确,但在这种情况下,这就足够了。
答案 1 :(得分:0)
对于任何严肃的解决方案,请使用 Sockets 而不是 TcpClient。它提供了更多的控制,并且在使用带有字节缓冲区的任务或线程和异步方法时通常是必需的。