我一直在查看来自博客文章的Traceroute代码。
问题是,当我试图将结果获取到C#表单时。我得到的唯一东西是一行完成的IP,hop,ms和IP。我试图获得一个列表或能够添加(字符串(跟踪路由到172.217.7.174,最多30跳:)跳,ms和IP地址)到ListView。
private async void btnAwait_Click(object sender, EventArgs e)
{
var Results = await asyncTraceRoute.TryTraceRouteInternalAsync("google.com", 30);
txtTraceroute.Text = Results.Message;
}在这方面的帮助将不胜感激。
发布于 2020-03-16 18:24:37
方法的名称(TryTraceRouteInternalAsync)实际上暗示某些事情是以不正确的方式进行的。
这个方法只调用一个ping,这就是为什么您只得到一个结果。
您需要调用的实际方法是TryTraceRouteAsync,但我强烈感觉您选择了另一个方法,因为它返回一个带有字符串消息属性的可访问对象。
如果执行以下操作,TryTraceRouteAsync方法将异步调用TryTraceRouteInternalAsync (MAX_HOPS = 15) 15次,并将所有结果写入streamWriter。
您只需调用此方法,并获得所需的所有结果:
private async Task<string> TraceRt()
{
MemoryStream memoryStream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(memoryStream);
await TraceRoute.TryTraceRouteAsync("google.com.tr", streamWriter);
streamWriter.Flush();
memoryStream.Position = 0;
StreamReader stringReader = new StreamReader(memoryStream);
return stringReader.ReadToEnd();
}https://stackoverflow.com/questions/60708914
复制相似问题