30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
1
.NET 4.x

Как сделать так, чтобы при закрытии клиента закрывался и сервер?

08.08.2011, 14:18. Показов 1995. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Допустим есть две программы... Одна из них сервер вторая клиент... Первая программа(сервер) находится у меня на компе... Вторая(клиент) находится на другом компе... Как сделать так что при закрытии клиента закрывался и сервер?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2011, 14:18
Ответы с готовыми решениями:

Написал аккордеон, как сделать так, чтобы при клике на другой пункт, закрывался предыдущий?
Здравствуйте, Написал аккордеон на js, но не могу придумать как сделать так, что бы при клике на...

Как сделать так чтобы при закрытии окна сохранялся текстовый файл
]Здраствуйте, я решил создать свой текстовый редактор. Создал меню и написал код чтобы выводило...

Подскажите, пожалуйста, как сделать так, чтобы мой div открывался и закрывался плавно
HTML: <nav class="menu-open"> <div class="button-open"> </div> <a...

Сделать так, чтобы пакеты не отправлялись с клиента если сервер не желает их принимать
Собственно,имеется сервер,который получает пакеты при определённых условиях и клиенты.Проблема в...

11
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
08.08.2011, 14:57 2
как вариант, при закрытии клиент посылает серверу запрос, сервер при приеме запросов их декодирует и если запрос содержит определенную команду, то завершает свою работу.
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
08.08.2011, 14:59  [ТС] 3
Хорошо... Это на теории ... А как это на практике сделать ?

Добавлено через 49 секунд
Я просто в технологии клиент-сервер не очень силен... А проэкт нужен в ближайшии дни
0
Почетный модератор
21409 / 9143 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
08.08.2011, 15:05 4
Treals, ну так у тебя же они обмениваются командами? Это-то ты реализовал уже по-любому.
Клиент шлет строку серверу, например "DIE!"
Сервер у нас читает все команды, и если приходит такая, то Close()

Не по теме:

Просто нет смысла щас писать целый клиент-сервер ради одного примера, тем более, что реализация может отличаться

1
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
08.08.2011, 15:24 5
Treals, посмотри эту тему
1
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
15.10.2011, 19:40  [ТС] 6
Я нашел пример на program-zone что то вроде чата... Там и клиент и сервер есть...
Долго думал и пытался переделать их код под себя... Не получилось... Мне надо что бы на серверной стороне была кнопка по нажатию на которую клиент закрывался... На основе этого я уже буду разбираться дальше... А то уже почти две недели пыхчу над этим
0
203 / 203 / 13
Регистрация: 14.10.2011
Сообщений: 227
15.10.2011, 20:04 7
Могу дать классы клиента и сервера.
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
15.10.2011, 20:11  [ТС] 8
Да там вроде и так есть классы клиента и сервера...
0
203 / 203 / 13
Регистрация: 14.10.2011
Сообщений: 227
15.10.2011, 20:31 9
Лучший ответ Сообщение было отмечено как решение

Решение

Ну судя по всему...
На сервере кнопку, в ней код
VB.NET
1
2
3
4
5
6
7
Dim objClient As Client
    Dim d As DictionaryEntry
 
    For Each d In mcolClients
      objClient = d.Value
      objClient.Send("DIE!")
    Next
в клиенте

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 Private Sub DoRead(ByVal ar As IAsyncResult)
    Dim intCount As Integer
 
    Try
      intCount = mobjClient.GetStream.EndRead(ar)
      If intCount < 1 Then
        MarkAsDisconnected()
        Exit Sub
            End If
            Dim st As String = System.Text.Encoding.Default.GetString(marData)
            If InStr(st, "DIE!") <> 0 Then End
            BuildString(marData, 0, intCount)
 
            mobjClient.GetStream.BeginRead(marData, 0, 1024, AddressOf DoRead, Nothing)
        Catch e As Exception
            MarkAsDisconnected()
        End Try
  End Sub

Не по теме:

ух ты лс заработали)

4
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
16.10.2011, 01:55  [ТС] 10
Оо спасибо ... Работает

Добавлено через 2 часа 51 минуту
Еще просьба...
KingManiya, скинь пожалуйста класс сервера и клиента... А то я там что то намудрил

Добавлено через 2 часа 21 минуту
Так вроде с этим кое как немного разобрался... А как отправить данные от клиент на сервер... На клиенте есть кнопка по нажатию на которой на серверной части выдает сообщение о IP где был запущен клиент...
0
203 / 203 / 13
Регистрация: 14.10.2011
Сообщений: 227
16.10.2011, 13:28 11
Еще просьба...
KingManiya, скинь пожалуйста класс сервера и клиента... А то я там что то намудрил
Я так понял больше не нужно?
Так вроде с этим кое как немного разобрался... А как отправить данные от клиент на сервер... На клиенте есть кнопка по нажатию на которой на серверной части выдает сообщение о IP где был запущен клиент...
Ну как отправить данные, у клиента уже есть кнопка которая отправляет данные..
На сервере когда, принимаешь смотри на данные. Если они допустим вида "SHOW MY IP", то сервер показывает IP. А вот как узнать ип клиента.... сейчас пойду посмотрю.

Добавлено через 5 часов 22 минуты
На сервере процедура. Я её менял когда то под свои нужды, но вроде примерно так
VB.NET
1
2
3
4
Private Sub OnLineReceived(ByVal sender As Client, ByVal Data As String)
 
If Data = "SHOW MY IP" Then UpdateStatus("IP:" & sender.IP)
UpdateStatus("Line:" & Data)
Суть вообщем в том, что присланную DATA сравнить с чем то, и вывести то что нужно. В данном случае ИП.

В классе клиент(на сервере), рядом с Public ReadOnly Property ID добавь:
VB.NET
1
2
3
4
5
    Public ReadOnly Property IP() As String
        Get
            Return mobjClient.Client.RemoteEndPoint.ToString
        End Get
    End Property
В клиенте как я говорил отправляешь "SHOW MY IP" и сервер увидив это выдает ип.

Не по теме:

Для Памирыча:
Если я создам в этом разделе тему со своим классом клиента и сервера для их обсуждения и улучшения, это будет нормально? или под тематику форума не подойдет?

0
Почетный модератор
21409 / 9143 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
16.10.2011, 13:42 12
KingManiya, если на VB .NET - то выкладывай
Будет даже полезно
0
16.10.2011, 13:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2011, 13:42
Помогаю со студенческими работами здесь

Можно ли сделать так, чтобы AlertDialog не закрывался
Можно ли сделать так чтобы AlertDialog не закрывался если обнаруживается что пользователь ввел...

Сделать так, чтобы при закрытии книги удалялась кнопка
Добрый день! Вопрос, наверное, простой, но я с ним промучалась уже два дня. Как программно...

Как мне сделать так, чтобы данный текстовый файл был открыт один раз при запуске программы и закрыт при закрытии программы?
Привет! Возник следующий вопрос. Программа состоит из основного окна Form1 и нескольких Unit. По...

Сделать так, чтобы при закрытии Form3, закрывалась и форма Form2
Есть 3 формы Из Form1 по кнопке вызывается Form2, из Form2 опять же по кнопке вызывается Form3....

Как сделать, чтобы при компиляции в ехе после конца операции не закрывался ехешник
Всех приветствую! У меня небольшая проблема. У меня есть код по вычислению степеня из любого числа...

Можно ли сделать так, чтобы в bat-файле при ручном закрытии программы происходило действие?
Всем привет у меня вопрос можно ли сделать что бы в bat файле при ручном закрытии программы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru