Форум программистов, компьютерный форум CyberForum.ru

Программирование Windows Phone

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.88
Exvel
2 / 2 / 0
Регистрация: 26.02.2011
Сообщений: 64
#1

Windows Phone 7: сокеты и торрентовские пиры - Windows Phone

21.11.2011, 17:45. Просмотров 3111. Ответов 0
Метки нет (Все метки)

Пишу тут торрент клиент для Windows Phone 7.
Разбор торрент-файла и скачивание списка пиров с трекера сделал.
Однако не получается подсоединиться к пиру через сокет.
Выдает либо "Timed out", либо "Connection refused".
Вот код соединения:
C#
1
2
3
4
5
6
SocketAsyncEventArgs socketArg = new SocketAsyncEventArgs();
socketArg.RemoteEndPoint = peerIpPort;
socketArg.Completed += new EventHandler<SocketAsyncEventArgs>(socketArg_Completed);
 
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.ConnectAsync(socketArg);
C#
1
2
3
4
void socketArg_Completed(object s, SocketAsyncEventArgs e)
{
      MessageBox.Show(e.SocketError.ToString());
}
Добавлено через 1 час 42 минуты
update:

Хм, странно. Попробовал подсоединиться к пиру скопированному из uTorrent той же раздачи. Все подсоединилось как надо.
Думал может разбираю адреc-порт неправильно, но не вижу ошибки:
C#
1
2
3
4
5
6
7
8
for (int i = 0; i < peers.Length; i += 6)
{
      IPEndPoint endpoint = new IPEndPoint(
               (long)BitConverter.ToUInt32(peers, i),
               (int)BitConverter.ToUInt16(peers, i + 4));
 
      this.peersList.Add(endpoint);
}
peers - массив байт, где каждые 6 байтов представляют собой ip (4 байта) и порт (2 байта).

Добавлено через 52 минуты
update:

Разобрался. Порт оказывается в big endian записан был, байты считывать в обратном порядке надо.

C#
1
2
3
4
5
6
7
8
for (int i = 0; i < peers.Length; i += 6)
{
      IPEndPoint endpoint = new IPEndPoint(
               (long)BitConverter.ToUInt32(peers, i),
               (int)BitConverter.ToUInt16(new byte[] { peers[i + 5], peers[i + 4] }, 0));
 
      this.peersList.Add(endpoint);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2011, 17:45     Windows Phone 7: сокеты и торрентовские пиры
Посмотрите здесь:
Сокеты в Windows Phone. Не происходит отправка данных Windows Phone
Windows Phone Анимация Windows Phone 8
Windows Phone Архитектура Windows Phone 8
Windows Phone Фриланс и Windows Phone
Windows Phone MVVM Windows Phone
Windows Phone Наследование в Windows Phone
Секундомер на Windows phone Windows Phone
Windows Phone Эмулятор Windows Phone 8/8.1
Windows Phone: литература Windows Phone
Потоки в windows phone 8.1 Windows Phone
Windows Phone Анкета на с# на windows phone
Windows Phone Windows Phone и локальная БД

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru