как зная открытый порт и IP послать текст на этот порт

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Deisel
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 06.08.2002 (Вт) 9:13
Откуда: Estonia

как зная открытый порт и IP послать текст на этот порт

Сообщение Deisel » 13.12.2003 (Сб) 10:16

как зная открытый порт и IP послать текст на этот порт
-------d(*_*)b------

|||||||(. ) ( .)|||||

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 13.12.2003 (Сб) 21:40

Можно так: положить на форму Winsock и написать такой код:
Код: Выделить всё
winsock1.connect {нужный IP}, {нужный порт}
doevents
winsock1.senddata {Нужная строка}
doevents
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 14.12.2003 (Вс) 10:56

только перед отправкой надо дождаться соединения.
нужен один таймер (Name=t), и Winsock (Name=w)


Код: Выделить всё
Private Sub Form_Load()
w.Connect IP_ÀÄÐÅÑ, ÏÎÐÒ
If WaitForWinsockToConnect(10000) = True Then
    w.SendData ×ÒÎ_ÍÀÄÎ_ÏÎÑËÀÒÜ
Else
    MsgBox "Íå óäàëîñü ñîåäåíèòüñÿ ñ ñåðâåðîì!"
End If
End Sub

Public Function WaitForWinsockToConnect(howlongtowait As Integer) As Boolean
t.Interval = howlongtowait
t.Enabled = True
Do While w.State <> sckConnected
    If t.Enabled = False Then
        Exit Do
    End If
    DoEvents
Loop
t.Enabled = False
If w.State = sckConnected Then
    WaitForWinsockToConnect = True
Else
    WaitForWinsockToConnect = False
End If
End Function

Private Sub t_Timer()
t.Enabled = False
End Sub

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 14.12.2003 (Вс) 14:05

А так
Код: Выделить всё
w.connect
do while not w.state=sckconnected
doevents
loop
w.senddata

разве не прокатит? Просто я раньше не сталкивался со случаем, где сразу после соединения нужно посылать данные.
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 14.12.2003 (Вс) 15:14

нет не прокатит
а что если такого ip адреса нет? он вечно doevents делать бкдет? а так как я написал, он после 10 секунд ожидания просто скажет что сервер не отвечает.

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 14.12.2003 (Вс) 16:29

v-adix писал(а):нет не прокатит
а что если такого ip адреса нет? он вечно doevents делать бкдет? а так как я написал, он после 10 секунд ожидания просто скажет что сервер не отвечает.

Надо же, а я и не подумал :oops: Ладно, буду знать.
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList