Get-Process -Id (Get-NetTCPConnection -LocalPort portNumber).OwningProcess
C:\> netstat -a -b
(Добавляют -n для остановки его пытающийся разрешить имена узлов, которые сделают его намного быстрее.)
рекомендация датчанина Примечания для TCPView. Это выглядит очень полезным!
Дисплеи-a все соединения и порты прослушивания.
Дисплеи-b исполняемый файл, вовлеченный в создание каждого порта подключения или порта прослушивания. В некоторых случаях известные исполняемые файлы размещают несколько независимых компонентов, и в этих случаях отображена последовательность компонентов, вовлеченных в создание порта подключения или порта прослушивания. В этом случае исполняемое имя находится в [] в нижней части, на вершине компонент, который это назвало, и т.д пока TCP/IP не был достигнут. Обратите внимание, что эта опция может быть трудоемкой и перестанет работать, если у Вас нет достаточных полномочий.
адреса Дисплеев-n и номера портов в числовой форме.
Дисплеи-o идентификатор процесса владения, связанный с каждым соединением.
При сбоях первым шагом является использование сообщений об ошибках и отладчика, чтобы выяснить, какой вызов вызывает проблему. Если проблема вызвана неперехваченным исключением, прочтите эту статью Apple об обработке исключений . Конкретный ответ действительно зависит от вашего кода и от того, что именно вызывает сбой, поэтому я не буду рассуждать о конкретном решении.
Что касается обнаружения кодов ответа сервера об ошибке (например, 404), то « s более специфичен для WebKit. Я предполагаю, что вы используете UIWebView на iPhone и, вероятно, заметили, что ни один из основных методов не возвращает ошибок. Это связано с тем, что он использует модель делегата для асинхронного сообщения о ходе выполнения или ошибках. (Это имеет смысл, потому что вы не хотите, чтобы ваш код пользовательского интерфейса зависел от медленно загружающейся (или несуществующей) веб-страницы. Чтобы получить уведомление о таких ошибках, необходимо выполнить несколько шагов.
Протокол UIWebViewDelegate
, обычно в том же классе, который для удобства запускает загрузку веб-страницы. delegate
, поэтому вы можете использовать что-то вроде uiView.delegate = self
или [uiView setDelegate: self]
в зависимости от того, что вы предпочитаете.) webView: didFailLoadWithError:
метод в этом классе. (Вы можете получить уведомление о завершении загрузки, реализовав webViewDidFinishLoad:
.) Здесь вы включаете логику того, что должно произойти при возникновении ошибки. Я не видел никакой подробной документации о содержании любых конкретных ошибок, переданных с помощью этого метода делегата, но это стандартный объект NSError
, и я рекомендую проверить содержимое, вызвав его методы, такие как -localizedDescription
и -userInfo
.
Вот пример кода с исключенными для краткости операторами #import.
MyClass.h
@interface MyClass : NSObject <UIWebViewDelegate> {
IBOutlet UIWebView* myWebView;
}
-(void)webView:(UIWebView*)webView didFailLoadWithError:(NSError *)error;
@end
MyClass.m
@implementation MyClass
- (id) init {
if ((self = [super init]) == nil)
return nil;
// initialize myWebView
myWebView.delegate = self;
return self;
}
- (void) webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error {
...
}
@end
Проверить соединение довольно просто ...
NSString * test = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.stackoverflow.com"]];
if (test == nil) {
//display an alertview saying you don't have an internet connection
}
Использование URL-адреса для проверки подключения не является хорошей идеей, это недостаточно надежно, чтобы определить, не работает ли интернет-соединение, веб-сайт или какая-либо другая проблема с сетью и т. Д. И выше все это добавляет накладные расходы к вызову в отношении сетевого трафика.
Посмотрите демонстрацию Reachability на сайте Apple, она использует правильный способ определения подключения, в том числе, подключены ли вы к Wi-Fi и т. д.