[英]Set up a socket server
我需要一個將啟動套接字服務器並等待連接的類。 這是我的代碼:
public static void StatServer()
{
TcpClient client;
TcpListener tcpListener;
int _serverport = 9898;
tcpListener = new TcpListener(System.Net.IPAddress.Any, _serverport);
try
{
tcpListener.Start();
while (true)
{
if (tcpListener.Pending())
{
client = tcpListener.AcceptTcpClient();
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
}
}
catch (SocketException ex)
{
Console.WriteLine(ex.Message);
}
}
但是來自MSDN。 ,我們發現該代碼沒有TcpClient
等,哪個代碼正確? 我是否誤解了這個概念?
我認為,兩者都是正確的。 我認為,TcpListener / client只是一種包裝,它在其中使用Socket。
只是看了看TcpListener的反編譯代碼
private Socket m_ServerSocket;
...
public TcpListener(IPEndPoint localEP)
{
if (Logging.On)
Logging.Enter(Logging.Sockets, (object) this, "TcpListener", (object) localEP);
if (localEP == null)
throw new ArgumentNullException("localEP");
this.m_ServerSocketEP = localEP;
this.m_ServerSocket = new Socket(this.m_ServerSocketEP.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
if (!Logging.On)
return;
Logging.Exit(Logging.Sockets, (object) this, "TcpListener", (string) null);
}
等等。
我認為TcpListener為您提供了一些舒適的方法,而Socket更底層。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.