Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.07.2011, 10:45
Elid вне форума Посмотреть профиль Отправить личное сообщение для Elid Найти все сообщения от Elid
  № 1  
Ответить с цитированием
Elid

Регистрация: Jul 2011
Сообщений: 1
По умолчанию Клиент AS3 сервер С# не соединяется.

Всем доброго времени суток.
Проблема в кратце: делаю клиент на АS3 а сервер на С#. Вообщем создаю сокет соединение и локально все хорошо соединяется. Но когда прописываю внешний IP соединение обрывается. Полазил в Нэте почитал понял что требуется файл политики. Как описано для этого Flash создает еще одно соединение чтобы получить его на порт 843 или с помощь функции Security.loadPolicyFile на любой порт.
Вот собственно клиент (вырезал почти все, оставил только то что должно соединять) и сервер.
как я понимаю Security.loadPolicyFile должна с меня потребовать файл политики т.е. прислать сообщение, но для этого хотя бы надо присоединится... чего я вообще не наблюдаю судя по логу, а только сокет соединение которое конечно же сразу отваливается.
Хотелось бы просто получить устойчивое соединение. Дальше с данными разберусь как нить
Програмирую не давно, не бить за сумбурность кода
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.*;
	import flash.text.*;
	import flash.net.Socket;
	import flash.system.Security;
 
	public class Main extends Sprite 
	{
		var soket:Socket;
		public function Main():void 
		{
			soket = new Socket();
			function onMouseDown(e:MouseEvent):void
			{
				soket.addEventListener(Event.CONNECT, conection);
				try 
				{
				 Security.loadPolicyFile("xmlsocket://46.38.28.183:843");
				 soket.connect( "46.38.28.183", 843);
				}
				catch(e:Error)
				{
				 trace(e);
				}
 
			}
		}
 
		function  conection(e:Event):void
		{
		}
 
 
	}
}
А это сервер
Main
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Threading;

namespace SocketServer
{
    class Program
    {


        static void Main(string[] args)
        {
            IPHostEntry host = Dns.GetHostEntry("192.168.0.101");
            IPAddress ip = host.AddressList[0];
            TcpListener tcp = new TcpListener(ip,843);
            tcp.Start();
            Console.WriteLine("Ждем подключений...");
            while (true)
            {
                TcpClient ctcp = tcp.AcceptTcpClient();
                Console.WriteLine("Чего то приконектилось");
                ClientHandler cHandle = new ClientHandler();
                cHandle.clientSocket = ctcp;
                Thread cThread = new Thread(new ThreadStart(cHandle.RunClient));
                cThread.Start();
                           
            }


        }
    }
}
Класс ClientHandler
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets; 
using System.IO;  

namespace SocketServer
{
    class ClientHandler
    {

        public TcpClient clientSocket;
        private string readData;
        public void RunClient()
        {

            BinaryReader readSt = new BinaryReader(clientSocket.GetStream());
          //  NetworkStream writeSt = clientSocket.GetStream();
            while (true)
            {
                try
                {
                    readData = readSt.ReadString();// <---- здесь обрыв
                    Console.WriteLine(readData);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    break;
                                     
                }
            }

            clientSocket.Close();
        }

        
    }
}

Старый 11.07.2011, 08:48
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
http://www.flasher.ru/forum/showthread.php?t=134415

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:12.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.