У меня есть приложение для Windows Mobile 6, которое использует TcpListener для запуска сервера, и я не могу получить какие-либо внешние подключения для подключения к серверу. Устройство Windows Mobile в состоянии нормально подключиться к внешнему серверу, но, похоже, что-то заблокировано. Неважно, является ли внешнее устройство другим мобильным устройством Windows или ПК, подключенным через сетевой адаптер Ethernet, или подключением ActiveSync к ПК, все входящие подключения к серверу заблокированы.
Вот код, устанавливающий TcpListener:
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1131);
_connListener = new TcpListener(localEndPoint);
_connListener.Start();
TcpClient newConnection = _connListener.AcceptTcpClient();
Приложение просто остается заблокированным по команде accept, потому что оно никогда не получает соединение ни от каких клиентов.
Я также попробовал ipaddress сетевого адаптера, а также IPAddress.Any, но результаты те же.
Клиентское приложение, которое запускается на ПК, не работает в следующих строках (где 192.168.33.31 - это IP-адрес мобильного устройства при подключении с помощью сетевого адаптера Ethernet):
TcpClient testClient = new TcpClient();
testClient.Connect("192.168.33.31", 1131);
Исключение возникает в .Connect и указывает, что «установленное соединение было прервано программным обеспечением на вашем хост-компьютере».
Сетевое соединение существует, потому что мы можем пропинговать в обоих направлениях. Единственное, о чем я могу думать, - это то, что в Windows Mobile 6 есть некоторые настройки, блокирующие входящие сетевые подключения, но я еще не нашел никакой документации, касающейся входящих сетевых подключений к Windows Mobile. Кроме того, при поиске в Google, как правило, в качестве сервера не используется устройство Windows Mobile, а на несколько связанных вопросов, на которых работает сервер Windows Mobile, ответы остаются без ответа. Заранее спасибо.