- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
[code] public function send(data:String):void {
trace("OUT: " + data);
dispatchEvent(new StreamEvent(StreamEvent.COMM_OUT, false, false, null, data));
try {
socket.writeUTFBytes(data);
socket.flush();
} catch (error:Error) {
trace("Error writing to socket: " + error);
dispatchEvent(new StreamEvent(StreamEvent.DISCONNECTED, false, false, null));
}
}[/code]
gegMOPO4 21.07.2011 16:39 # 0
wvxvw 21.07.2011 16:48 # 0
gegMOPO4 21.07.2011 17:00 # 0
wvxvw 21.07.2011 17:08 # 0
Кроме null могут быть и другие ситуации, когда, например System.useCodepage используется, и в строке будут не Юникоды. Редкостная ситуация, но все же.
gegMOPO4 21.07.2011 18:02 # 0
Ошибкой, вероятно, является предоставление этой низкоуровневой функции в публичный API. Но если «публичность» ограничивается одной программой того же авторства, то в этом ничего страшного, автор сам позаботится, чтобы передавать валидные данные.
wvxvw 21.07.2011 18:08 # 0
Так автор (т.е. пользователь API) никогда не узнет, что данные не валидны! В этом то и недостаток - т.как если в ответ на невалидные данные выбрасывается исключение - тогда, да, пользователь сообразит, что что-то не так. А если в ответ на невалидные данные происходит какое-то вообще не связаное с ними действие - так откуда ж узнать, что данные были невалидными?
wvxvw 21.07.2011 18:12 # 0
gegMOPO4 21.07.2011 18:59 # 0
Я не работал с XMPP, но мне кажется сомнительным, что на сервер отсылается просто сырой пользовательский ввод. Как минимум должны быть управляющие команды, а то и в XML всё (на что намекает буковка «хер»).
wvxvw 21.07.2011 21:46 # 0
guest8 09.04.2019 11:12 # −999