Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Принятие подключения 
:(
    Опции темы
Miller_time
Дата 30.9.2007, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Доброго дня и суток ))

Помогайте вот прмиер серверного прилодения он должен ожидать данных от клиента.


 
Код

//Server

            Socket listenSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint listenEP =new IPEndPoint(IPAddress.Any, ServerPort);
            listenSocket.Bind(listenEP);
            listenSocket.Listen(5);
            Socket clientSocket = null;


            while(true)
            {

                    clientSocket = listenSocket.Accept();

.
.
.
.




Но он зацикливается на 

clientSocket = listenSocket.Accept();


А так это цикл работает для отображдения 3д обьектов  с испольщование игрокого движка TV3D. Как правильно организовать такова вида подключение ? 


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Yama
Дата 1.10.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 2.8.2006

Репутация: нет
Всего: 2



Код

Socket clientSocket = null;

public void initSocket(int ServerPort){
Socket listenSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint listenEP =new IPEndPoint(IPAddress.TryParse("127.0.0.1"), ServerPort);
            listenSocket.Bind(listenEP);
            listenSocket.Listen(5);
            listenSocket.BeginAccept(accept, listenSocket);
}

        void accept(IAsyncResult asyncResult) {
        //добавлено
        clientSocket = (Socket) asyncResult;
        }



Это сообщение отредактировал(а) Yama - 1.10.2007, 14:59
--------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию.
PM MAIL   Вверх
Miller_time
Дата 1.10.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Тоесть мне в цикл засунуть 

accept();

или как ?


Если что извините за тупой вопрос.

Добавлено через 4 минуты и 16 секунд
Может есть какието боделлее удобные технологии для обмна данными между сервером и клиентами ??? 


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Yama
Дата 2.10.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 2.8.2006

Репутация: нет
Всего: 2



ы. Миллер.
я тебе выложил привер асинхронной работы сокета.
Что это значит: когда клиент подуключается - у тебя вызывается твоя самописная ф-ция accept, там я кое что немного не дописал, потому как писал по памяти сразу в окне браузера. Сейчас дополню и, надеюсь, тебе станет все понятно smile

Код

Socket clientSocket = null;

public void initSocket(int ServerPort){
Socket listenSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint listenEP =new IPEndPoint(IPAddress.TryParse("127.0.0.1"), ServerPort);
            listenSocket.Bind(listenEP);
            listenSocket.Listen(5);
            listenSocket.BeginAccept(accept, listenSocket);
}

        void accept(IAsyncResult asyncResult) {
//Испраленно
        clientSocket = ((Socket)asyncResult.AsyncState).EndAccept(asyncResult);

        ((Socket)asyncResult.AsyncState).BeginAccept(accept, listenSocket);
//=========
        }



Вот тебе немного информации о сокетах:
http://msdn2.microsoft.com/en-us/library/s...ket(VS.71).aspx

З.Ы. Более простой и универсальной технологии для обмена данными по сети сейчас не существует. Все сети построенны на технологии сокетов....

--------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию.
PM MAIL   Вверх
Miller_time
Дата 2.10.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Yama, 

Извини конечвно я тебя новерно достал , ты не мог бы сделать пример небольшой для этого кода... smile Я промучался весь день ну зацикливается у меня приложение и все. ТОлько жалательно пример с использованием windows form.  smile Заранее спасибо.


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Miller_time
Дата 2.10.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



А мот мои наработки кнопка по середине формы принят означает.



Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  WindowsApplication1.rar 44,56 Kb


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.