Проблема с обрезкой команды IRC / TOPIC в iOS

Я использую библиотеку сокетов Cocoa async в своем приложении iOS для подключения к серверу IRC через сокеты Tcp. Все команды IRC работают отлично, кроме команды / TOPIC. Когда я отправляю команду темы, она всегда обрезает первые два символа в ответе. Пожалуйста, проверьте пример отчета wirehark ниже.

Запрос

Ответ

Он работает на других клиентах IRC (mIRC). Как я могу определить основную причину проблемы?


person Clement Prem    schedule 19.02.2014    source источник
comment
Вы должны добавить : перед последним параметром, например TOPIC #abcdereh :My name is Clement. Если вы неправильно отформатируете свои сообщения, сервер может делать странные вещи (или ничего).   -  person Johannes Kuhn    schedule 20.02.2014
comment
Хорошо, я добавлю это в качестве ответа.   -  person Johannes Kuhn    schedule 20.02.2014


Ответы (1)


Если вы отправляете свои собственные IRC-команды (большинство IRC-клиентов позволяют легко вводить произвольные команды с /command here), вы должны правильно отформатировать его, поставив : перед последним параметром, если он содержит пробелы:

TOPIC #abcdereh :My name is Clement

У большинства клиентов IRC есть псевдоним для /TOPIC, который делает это за вас.
Если вы пишете собственный клиент, убедитесь, что вы обрабатываете следующие случаи:

  • /TOPIC: отправить TOPIC #currentchannel
  • /TOPIC #somechannel отправить TOPIC #somechannel
  • /TOPIC Not a channel отправить TOPIC #currentchannel :Not a channel
  • /TOPIC #somechannel New Topic отправить TOPIC #somechannel :New Topic
person Johannes Kuhn    schedule 20.02.2014