Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Winsock дает ошибку Adress Already in Use Добавлено: 18.06.02 16:15  

Автор вопроса:  Rebel | Web-сайт: rebel.bos.ru

Ситуация такова: есть сервер и клиент оба на винсоке стоят на разных машинах в локалке в одном домене. Сервер слушает порти принимает данные, клинет - подключается, передает данные и отключается.

При первом подключении все происходит нормально. При повторном - на клиенте WinSock выдает ошибку Adress Already In Use, а на сервере реакции нет вобще.

Как с этим бороться - не знаю, почему возникает - тоже :( Если кто че знает плз F1 :)

Заранее спасибо всем откликнувшимся :))

Ответить

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

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



ICQ: 155153916 

Вопросов: 2
Ответов: 126
 Профиль | | #1 Добавлено: 18.06.02 16:24

При отключении/подключении проверяй состояние WinSock и понеобходимости закрывай и дожидайся закрытия! Помни, что после WinSock.Close порт еще прослушивается некоторое время...

Найди толковый пример по теме. Я точно знаю, что в MSDN есть, а может и здесь в Библиотеке кодов

Ответить

Номер ответа: 2
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #2 Добавлено: 18.06.02 16:34

Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)

    If tcpServer.State <> sckClosed Then tcpServer.Close 'closes connection if one is already open

    tcpServer.Accept requestID 'allows new connection
    Debug.Print Time & "Client with ID: " & CStr(requestID) & " RequestConnect..."

End Sub

 

От сердца отровал:)))) Ясень пень надо переименовать tcpServer в то что там у тебя. Я например после каждой команды принудительно сбрасываю коннект, а потом тут же возобновляю:)) Ещё таки пассатижи могут наступить при запуске второй копии программы, которая слушает.

Ответить

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



Вопросов: 32
Ответов: 50
 Web-сайт: rebel.bos.ru
 Профиль | | #3
Добавлено: 18.06.02 17:10
Я так и делаю (примерно) но при повторном конекте на клиенте - ошибка, на сервере - никакой рекции..... :(((((((((((

Ответить

Номер ответа: 4
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #4 Добавлено: 18.06.02 17:21
А ты на клиенте случаем не забываешь закрывать соединение? Winsock.Close? Странно... значит говоришь локалка? А не используешь случаем имена компов, ввместо IP? Если да, то откажись от этой затеи. И...самое главное. Порт долен быть БОЛЬШЕ 1024, так как до него практически нет свободного места. Выбери себе любой integer для этих целей. Я, например использую1057. Ещё может помочь, если ты вырубишь firewall. ZoneAlarm висит там какой-нить и вредничает. Вообщем. Проблема решается методом тыка.

Ответить

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



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #5 Добавлено: 18.06.02 18:33

Этот код Винсак Серверу

 WinSock1.close

 sub winsock1_close()

 winsock1.close

end sub

Ответить

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



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 28.06.02 12:04
надо проклозить винсак!

Ответить

Страница: 1 |

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



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