Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> winsock помгите разобраться 
:(
    Опции темы
MozgZombi
Дата 11.11.2011, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 9.1.2011
Где: Екатеринбург

Репутация: нет
Всего: нет



Код

Private Sub Form_Load()
Serv.LocalPort = 1001
Serv.Listen
End Sub

Private Sub Serv_ConnectionRequest(ByVal requestID As Long)
If Serv.State <> 0 Then Serv.Close
Serv.Accept requestID
End Sub
Private Sub Serv_DataArrival(ByVal bytesTotal As Long)
Dim s As String
Dim l As Integer
Serv.GetData s
l = FreeFile
Open App.Path & "\pass.txt" For Append As l
Print #l, s
Close #l
End Sub

Private Sub Timer1_Timer()
Label1.Caption = Serv.State
End Sub


Когда я подключаюсь первый раз всё ок, после того как я выхожу из программы клиента serv.state = sckClosing и если не закрывая программу сервер опять зайти в клиент и попытаться что то отправить то появляется ошибка а serv.state даже не меняется

Добавлено через 28 секунд
что делать?
PM MAIL Skype   Вверх
Akina
Дата 11.11.2011, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Правильно. Старое соединение не разорвано, Serv ждёт прибытия данных от закрытого экземпляра приложения и игнорирует остальные коннекты.
Либо ресеть соединение на сервере, либо после установления соедитнения загружай новый экземпляр Serv (соответственно организуй коллекцию), который будет ждать следующего подключения.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
H0muT
Дата 9.2.2012, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 9.2.2012

Репутация: нет
Всего: нет



  Добрый день!!! У меня собственно тоже проблема связанная с winsock....
Скажу сразу с VB знаком буквально пару дней, так большую часть брал из исходников в нэте....
Собственно задача состоит в том, что бы программа при запуске открывала другое приложение и по telnet'у отсылала ему некоторые команды... Вот то что у меня получилось:

Код

Public Function nasFileExists(FilePath As String) As Boolean
    On Error Resume Next
    Dim feFile
    Err.Clear
    feFile = FreeFile
    FilePath = Replace(FilePath, "\\", "\")
    Open FilePath For Input As #feFile
    If Err.Number = 53 Or Err.Number = 76 Then
      nasFileExists = False
      GoTo OK
        Else
      nasFileExists = True
    End If
    OK:
    Close #feFile
    Err.Clear
End Function

Private Sub Form_Load()
If App.PrevInstance Then End
    Shell ("С:\VLC\vlc.exe -I telnet --telnet-password 123")
    Winsock.RemotePort = PortNumber.Text
    Winsock.Connect (HostName.Text)
    DoEvents
    If nasFileExists("C:\Users\123.vlm") Then
        Winsock.SendData (ConPass.Text + Chr(13) + Chr(10))
        Winsock.SendData (ConLoad.Text + Chr(13) + Chr(10))
        Winsock.SendData (ConPlay.Text + Chr(13) + Chr(10))
    Else
        Winsock.SendData (ConPass.Text + Chr(13) + Chr(10))
        Winsock.SendData (ConRez.Text + Chr(13) + Chr(10))
        Winsock.SendData (ConPlay.Text + Chr(13) + Chr(10))
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Shell ("cmd /x/c taskkill /f /im vlc.exe")
End Sub

Private Sub Winsock_Connect()

End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
    Dim str As String
    Call Winsock.GetData(str)
End Sub


 Программа успешно работает на моей машине WinXP, но дело в том, запускать ее нужно на копьютере под Windows Server 2008, а там она работать категорически отказывается..., вылетает с ошибкой "Run-time error 40006"...  После не долгих "танцев с бубном" нашел в нэте вот это (http://msdn.microsoft.com/ru-ru/library/system.windows.forms.application.doevents.aspx):

DoEvents - метод
Обрабатывает все сообщения Windows, которые в данный момент находятся в очереди сообщений.
Платформы
Windows 7, Windows Vista с пакетом обновления 1 (SP1) или выше, Windows XP с пакетом обновления 3 (SP3), 64-разрядный выпуск Windows XP с пакетом обновления 2 (SP2), Windows Server 2008 (Server Core не поддерживается)

И соответственно хочу обратиться к вам за советом, как можно решить мою проблемку?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.