Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Winsock Problem... Помогите! Добавлено: 19.09.04 11:46  

Автор вопроса:  Black Dragon | Web-сайт: в разработке | ICQ: 321186096 
Народ, у меня такая проблема:
Вот у меня программка по следующему типу: выбирается тип используемого компьютера (сервер или клиент, соответственно, два Winsocket'а). Если выбран тип "клиент", то нужен IP-адрес сервера и № порта. Если тип "сервер" - только № порта. Я вставил у "серверского" Winsocket'а обработчик ConnectionRequest:

WinSocket1.Close
WinSocket1.Accept RequestID

У "клиентовского" WinSocket'а делаю:

WinSocket2.RemoteHost = <IP-адрес>
WinSocket2.RemotePort = <№ порта>
WinSocket2.Connect

Через несколько секунд вылезает сообщение: "Connection is ... rejected", т.е. "Соединение отклюнено". Вроде бы все написал (вышеприведенное - это не все), а не работает.
Если кому не понятно:

Я компилирую EXE файл. Запускаю его, выбираю тип компа - "сервер", № порта - 101. В VB нажимаю Run (F5), выбираю тип "клиент"; адрес - 127.0.0.1 (локальный), № порта - 101. Клиент посылает...
Подскажите, что делать.

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #1 Добавлено: 19.09.04 18:36
Скажы одно, а у тебя интернет или локальная сеть???

Ответить

Номер ответа: 2
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #2 Добавлено: 19.09.04 18:36

Просто ели интернет - адрес 127.0.0.1

Ответить

Номер ответа: 3
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #3 Добавлено: 19.09.04 18:37

А ели лок. сеть - то 127.0.0.1 не подойдет!

Ответить

Номер ответа: 4
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #4 Добавлено: 19.09.04 18:37

Надо свой сетевой IP писать тогда!
Но вроде все в проге прально...
Незнаю в чём дело....

Ответить

Номер ответа: 5
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #5 Добавлено: 19.09.04 18:40

А да! Кроме RemotePort = <№порта> надо ещё и LocalPort = <№порта>

Ответить

Номер ответа: 6
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #6 Добавлено: 19.09.04 18:41

 Просто надо ещё и порт клиента поставить...
А не только удалённого компа

Ответить

Номер ответа: 7
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #7
Добавлено: 19.09.04 19:28
А двавай убери WinSocket1.Close :)

Ответить

Номер ответа: 8
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #8
Добавлено: 19.09.04 19:33
Я ставил и LocalPort и RemotePort у обоих Winsoket'ов.
И еще: у меня локальная сеть. Почему не подойдет адрес 127.0.0.1? Ведь этот адрес - локальный!?

Ответить

Номер ответа: 9
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #9
Добавлено: 19.09.04 19:34
На счет WinSocket1.Close(). Я попробую...

Ответить

Номер ответа: 10
Автор ответа:
 Brane



ICQ: 229-058-321 

Вопросов: 7
Ответов: 15
 Профиль | | #10 Добавлено: 19.09.04 21:05
Это сервер...


Private Sub Form_Load()
Dim retval As Long
Dim x As Long
Do
    If ws.State <> sckConnected And ws.State <> sckListening Then
 
        ws.Close
        ws.Listen
    End If
    ;DoEvents
Loop
End Sub


Private Sub ws_ConnectionRequest(ByVal requestID As Long)
ws.Close
ws.Accept requestID
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
ws.GetData Data
Select Case Data
    Case "PUSK" 'Выбор команды

твой код

end select

это клиеент

Private Sub Command1_Click() ' <--соединение
ws.Close
ws.RemoteHost = IP ' порт и хост компа сервера (у меня это 123 и 127.0.0.1 )
ws.RemotePort = Port
ws.Connect

Private Sub Command10_Click() '<-- отправка команды
If ws.State <> sckConnected Then Exit Sub
ws.SendData "PUSK"
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #11 Добавлено: 20.09.04 18:06

Эх ты пещерный человек...
127.0.0.1 не подойдет потому что ОС Windows при попытке подключения к 127.0.0.1 переадресирует подключение к тебе же, ВНИМАНИЕ!!!!! Но это только тогда, когда у тя IP адрес назначается автоматически!!! А если у тя лок. сеть, то извините, IP у тя фиксированный, и вводится он в свойствах подключения по локальной сети!!!

Если ты хочешь сделать клиент, который будет подключатся к твоему же компу (это надо для проверки клиента и сервера, и когда у тя Интернет это адрес 127.0.0.1)то надо писать так:

WinSocket2.RemoteHost = WinSocket2.LocalIP

Так все должно работать как по маслу!!!

Ответить

Номер ответа: 12
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #12 Добавлено: 20.09.04 18:08

P.S.

Не пользуйся WinSocket2.LocalIP , когда ты всё же хочеш подключится к другому компу, который в Интернете или в этой же твоей лок. сети! В таком случае надо делать так как предложил GenWork

Ответить

Номер ответа: 13
Автор ответа:
 RomaVis



ICQ: 266287351 

Вопросов: 31
Ответов: 147
 Профиль | | #13 Добавлено: 20.09.04 18:09

P.S.

Не пользуйся WinSocket2.LocalIP , когда ты всё же хочеш подключится к другому компу, который в Интернете или в этой же твоей лок. сети! В таком случае надо делать так как предложил GenWork

Ответить

Номер ответа: 14
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #14
Добавлено: 21.09.04 21:50
Сам, "пещерный человек...". Шучу.
Ну вот, я хочу проверить работу сервера и клиента, т.е. попытаться подключиться к СЕБЕ ЖЕ!!! wskClient.LocalIP у меня 127.0.0.1. И адрес сервера у меня стоит как автоматически!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам