|
|
|||||
Регистрация: Nov 2012
Сообщений: 30
|
Снова переписал все заново. Прописал 843 порт. Как и раньше, эффект нолевой! Что делать дальше?
Добавлено через 4 часа 17 минут Алло-о-о! Есть кто-то из супер спецов на этом форуме? На протяжение шести часов, еще раз, прочитал кучу статей, а эту почти выучили на из уч, просмотрел десяток видео, Перепробовал все ваши советы - результата 0! Может проблема в сервере? Ребята, у кого-то есть рабочий сервер? Выложите пожалуйста код. Я брал здесь и тут, но не на одном не работает. Добавлено через 5 часов 2 минуты Кстати, ни одна из этих команд : Цитата:
|
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
А с какой ошибкой ваша команда не выполняется? Может, там javac нужно запустить. Или доступа к портам нет.
Вообще, я не понимаю, откуда у кучи народа (не только у вас) возникают проблемы с сокет-серверами. Если разбираться в технологии и все делать строго по спеке, никаких проблем нет. import java.io.*; import java.net.*; public class SS { private static final String POLICY_FILE_RESPONCE = "<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>"; public static void main(String [] args) throws Exception { final ServerSocket ss = new ServerSocket(3128); while (true) { final Socket s = ss.accept(); new Thread(new Runnable() { @Override public void run() { handles(s); } }).start(); } } static void handles(Socket s) { System.out.println("Client!"); try { final InputStream is = new BufferedInputStream(s.getInputStream()); final OutputStream os = s.getOutputStream(); boolean first = true; boolean die = false; do { final ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int readed; while ((readed = is.read()) > 0) { buffer.write(readed); } final byte[] bytes = buffer.toByteArray(); final String dummyContent = new String(bytes, "UTF-8"); System.out.println(dummyContent); if ("<policy-file-request/>".equals(dummyContent) && first) { os.write(POLICY_FILE_RESPONCE.getBytes("UTF-8")); os.write(0); die = true; } first = false; if (readed == -1) die = true; if ("<quit/>".equals(dummyContent)) { die = true; } os.write(bytes); os.write(0); } while (!die); s.shutdownOutput(); s.close(); System.out.println("Good buy, cruel world!"); } catch (IOException e) { e.printStackTrace(); } } } package { import flash.display.*; import flash.text.*; import flash.geom.*; import flash.net.*; import flash.events.*; import flash.system.*; public class Test extends Sprite { const tf : TextField = new TextField(); var sock : XMLSocket; public function Test() { Security.loadPolicyFile("xmlsocket://127.0.0.1:3128"); sock = new XMLSocket("127.0.0.1", 3128); sock.addEventListener(Event.CONNECT, connected); sock.addEventListener(DataEvent.DATA, receive); addChild(tf); } private function connected(e : Event) : void { tf.text = "COnnected"; sock.send(<test/>); } private function receive(e : DataEvent) : void { tf.text = e.data.toString(); sock.send(<quit/>); } } } Обработка исключений не совсем правильная (для примера - пойдет, в production close нужно в finally делать). Запись в два приема (нулевой байт отдельно) тоже может быть не очень для production (учитывая, что у вас вообще не работает - без разницы). |
|
|||||
Регистрация: Nov 2012
Сообщений: 30
|
Пробавал по разному, но ошибка одна и та же:
Цитата:
|
Часовой пояс GMT +4, время: 15:53. |
|
« Предыдущая тема | Следующая тема » |
|
|