我在一些可能非常简单的事情上稍微挣扎但是现在这样。
我有一个名为runServer的方法。一切都在努力。我还有另一个名为logRequest的方法。我希望能够访问我在runServer中设置的变量。什么是最好的方式?
static void runServer()
{
//Everything is working here but the variable/function I want to access is:
string clientIP = connection.RemoteEndPoint.ToString();
}
static void logRequest()
{
// What I want to do is access the string I created in runServer and use it here.
Console.WriteLine(clientIP);
}
我已经调试过它,一切正常。它确实提供了一个IP地址,但我希望能够在控制台上打印该IP地址。 runServer只包含TcpListeners等。运行服务器的基本代码。我想要做的就是在该方法中访问该字符串。
我无法真正将变量clientIP移出方法,因为这是连接的位置。
static void runServer()
{
TcpListener listener;
Socket connection;
NetworkStream socketStream;
try
{
listener = new TcpListener(IPAddress.Any, 43);
listener.Start();
Console.WriteLine("Server Started Listening.");
while (true)
{
connection = listener.AcceptSocket();
string clientIP = connection.RemoteEndPoint.ToString();
socketStream = new NetworkStream(connection);
doRequest(socketStream);
socketStream.Close();
connection.Close();
}
}
catch (Exception e)
{
Console.WriteLine("Exception: " + e.ToString());
}
}