Как установить TCP-соединение с учетом имени хоста и порта в Windows Phone 7.1? - PullRequest
0 голосов
/ 22 июня 2011

В WP 7.1 в классе Socket отсутствуют такие методы, как Socket.Connect (string, int), которые сделали бы это простым. Доступная альтернатива Socket.ConnectAsync, очевидно, нуждается в числовом IP-адресе (переданном с объектом SocketAsyncEventArgs).

Более того, такие методы, как Dns.GetHostEntry, также отсутствуют, поэтому вы не можете легко получить IP-адрес с указанием имени хоста.

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Существует много вызовов, недоступных в Windows Phone Mango API, в частности, сокеты всегда асинхронны (как следствие, отсутствует NetworkStream) и отсутствует поддержка серверных сокетов. Тем не менее, здесь есть хорошее руководство по использованию сокетов в манго. Небольшой пример Tic Tac Toe.

http://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx

И здесь есть немного документации по использованию сокетов:

http://msdn.microsoft.com/en-us/library/hh202870(v=vs.92).aspx

1 голос
/ 23 июня 2011

Оказывается, что подключиться к хосту с данным именем хоста на самом деле довольно просто. Вопреки тому, что предлагают вопросы, SocketAsyncEventArgs.RemoteEndPoint может быть назначен либо IPEndPoint, либо объекту DnsEndPoint:

var args = new SocketAsyncEventArgs();
args.RemoteEndPoint = new DnsEndPoint(hostName, port);
args.Completed += ... // Add your completion handler here
Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, args);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...