Страница: 1 | 2 |
Вопрос: Server Client
Добавлено: 25.07.06 23:53
Автор вопроса: dahool | ICQ: 248-138-272
Люди, я новый пользователь этого форума. помогите пожалуйста, мне срочно нужно чтоб на мой комп могли подключится. типо на моем компе сервер, а еще два клиента могут присылать текстовые сообщения, и я тоже мог им отпровлять. ну типо чат только простенький, без наворотов! Спасибо.
Ответы
Всего ответов: 27
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 26.07.06 11:10
Net Send
Номер ответа: 2
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #2
Добавлено: 26.07.06 11:29
2 LamerOnLine: а что, ловить net send-овские сообщения кто-то уже научился?
2 dahool: у меня есть недоделанная локальная аська, если возьмёшься доделать, кину исходники.
Номер ответа: 3
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #3
Добавлено: 26.07.06 12:29
Pashenko: Мне мож кинуть?
dahool: Через WinSock на своем компе слушаешь какой-нить порт, а на клиентах подключаешься к етим портам. Потом на серваке парсируешь риходяшие сообщения и выполняешь свои действия.
Вроде так...
Номер ответа: 4
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #4
Добавлено: 26.07.06 12:41
2 Softer: а точно дописывать будешь? Если просто побаловаться, то не хочу.
Номер ответа: 5
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #5
Добавлено: 26.07.06 12:44
Не, мне в образовательных целях. Может и допишу... Еси время будет...
Номер ответа: 6
Автор ответа:
dahool
ICQ: 248-138-272
Вопросов: 5
Ответов: 4
Профиль | | #6
Добавлено: 26.07.06 19:19
Мне типо тока код нужен самых основных комманд, а то мой пример, не хочет конектится. не, аська мне не надо, слишком круто (но спасибо), что то по проще!!!
Номер ответа: 7
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #7
Добавлено: 27.07.06 23:38
Клиент - это программа которая посылает сигналы серверу, а сервер ждет сигналов клиента(ну ты меня понял?). Начнемс...
Для начала сделаем Сервер, он будет ждать сигнала клиента, и когда клиент выйдет на связь, можно будет посылать сигналы от сервера к клиенту, и наоборот. Короче будет что то типо чата.
Войди в VB(Standart Exe), подключи компонент МелкоСофт Winsock Контрол 6.0, на понели инструментов появится объект Winsock, закинь его на форму. На форму кинь еще 2 текстовых поля(1ое - отправка сообщений, 2ое - прием сообщений). Вот код:
Private Sub Form_Load()
Winsock1.LocalPort = 101 ' Указываем порт который будет слушать Сервер
Winsock1.Listen ' Начинаем Слушать порт
Form1.Caption = "Сервер"
End Sub
Private Sub Text1_Change() ' При изменении текста в текстовом поле:
Winsock1.SendData Text1.Text ' Посылаем клиенту текст который введен в текстовое поле
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close ' Если сервер не закрыт, то закрываем его(подробнее смотри ниже)
Winsock1.Accept requestID ' Принимаем запрос
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Если Клиент посылает текст то:
Dim D As String ' Объявляем переменную для работы со строками
Winsock1.GetData D ' Записываем в переменную текст, который был послан Клиентом
Text2.Text = D ' Здесь все понятно, скажу только что нельзя напрямую писать Winsock1.GetData Text1.Text, надо обязательно через переменную
End Sub
Ну усе, сервер готов, теперь надо сделать Клиент. Ой... чуть не забыл... короче вот таблица:
Константа Описание
sckClosed Такое значение стоит при запуске программы или когда порт закрыт
sckOpen Порт открыт
sckListening Порт прослушивается
sckConnectionPending Ожидание связи
sckConnecting Подключение к хосту
sckConnected Связь установлена
sckClosing Связь закрывается...
sckError Ошибка
Вот про это я и говорил, в строке If Winsock1.State <> sckClosed Then, вместо sckClosed ты можешь вписать любую константу из таблицы.
Теперь мы сделаем клиент, на форму опять кинь контрол Winsock, 2 тектовых поля, вот код:
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1" ' Указываем IP компа, на котором запущен сервер(В место IP`a можно указать имя компа(Мой Компьютер>>Панель управления>>Сеть>>Индефикация(Winsock1.RemoteHost = "Komp"))(если ты сейчас не в сети(ил в локалке), то твой IP всегда будет 127.0.0.1)
Winsock1.RemotePort = 101 ' Указываем порт сервера
Winsock1.Connect ' Подключаемся
Form1.Caption = "Клиент"
End Sub
Private Sub Text1_Change() ' При изменении текста:
Winsock1.SendData Text1.Text ' Отправляем текст
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Если сервер посылает текст то:
Dim DD As String ' Объявляем переменную для работы со строками
Winsock1.GetData DD ' Записываем в переменную текст, который был послан Сервером
Text2.Text = DD
End Sub
Все, теперь запусти Сервер, а потом Клиент. Впиши в Текстовое поле текст, и он появится в другом текстовом поле(если текст вписан в сервер, то он появится в клиенте, и наоборот).
Из учебника Падре.
Номер ответа: 8
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #8
Добавлено: 27.07.06 23:58
Клиент - это программа которая посылает сигналы серверу, а сервер ждет сигналов клиента(ну ты меня понял?). Начнемс...
Для начала сделаем Сервер, он будет ждать сигнала клиента, и когда клиент выйдет на связь, можно будет посылать сигналы от сервера к клиенту, и наоборот. Короче будет что то типо чата.
Войди в VB(Standart Exe), подключи компонент МелкоСофт Winsock Контрол 6.0, на понели инструментов появится объект Winsock, закинь его на форму. На форму кинь еще 2 текстовых поля(1ое - отправка сообщений, 2ое - прием сообщений). Вот код:
Private Sub Form_Load()
Winsock1.LocalPort = 101 ' Указываем порт который будет слушать Сервер
Winsock1.Listen ' Начинаем Слушать порт
Form1.Caption = "Сервер"
End Sub
Private Sub Text1_Change() ' При изменении текста в текстовом поле:
Winsock1.SendData Text1.Text ' Посылаем клиенту текст который введен в текстовое поле
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close ' Если сервер не закрыт, то закрываем его(подробнее смотри ниже)
Winsock1.Accept requestID ' Принимаем запрос
End Sub
...
Слухай, LeX, это ты такой корявый, или учебник?
Номер ответа: 9
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #9
Добавлено: 28.07.06 08:58
Учебник наверно ))) Я даже не читал... Нашел нужный контрол, скопировал и все...
Номер ответа: 10
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #10
Добавлено: 28.07.06 12:20
Феникс, а тебе лишь бы на чужие ощибки указывать?
Номер ответа: 11
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #11
Добавлено: 28.07.06 13:38
Агент, нет, мне не лишь бы на чужие "ощибки" указывать
Номер ответа: 12
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #12
Добавлено: 28.07.06 15:02
))
Я чё-то не понял, это форум по программированию или по русскому языку???
Номер ответа: 13
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #13
Добавлено: 28.07.06 15:36
Скарее второе .
ЗЫ: Причем почти в каждой теме!
ЗЗЫ: Сорри за флуд и оффтопик...
Номер ответа: 14
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #14
Добавлено: 28.07.06 20:33
Просто противно читать безграмотные посты. Таким вот субъектам надо советовать сначала изучить свой родной язык, а потом уже браться за язык(и) программирования.
ЗЫ. Сорри за флуд и оффтопик...
Номер ответа: 15
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #15
Добавлено: 28.07.06 21:26
Понятно.
Не хватает запятой после слова "сначала"