Страница: 1 |
Ситуация такова: есть сервер и клиент оба на винсоке стоят на разных машинах в локалке в одном домене. Сервер слушает порти принимает данные, клинет - подключается, передает данные и отключается. При первом подключении все происходит нормально. При повторном - на клиенте WinSock выдает ошибку Adress Already In Use, а на сервере реакции нет вобще. Как с этим бороться - не знаю, почему возникает - тоже :( Если кто че знает плз F1 :) Заранее спасибо всем откликнувшимся :))
При отключении/подключении проверяй состояние WinSock и понеобходимости закрывай и дожидайся закрытия! Помни, что после WinSock.Close порт еще прослушивается некоторое время... Найди толковый пример по теме. Я точно знаю, что в MSDN есть, а может и здесь в Библиотеке кодов 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 End Sub От сердца отровал))) Ясень пень надо переименовать tcpServer в то что там у тебя. Я например после каждой команды принудительно сбрасываю коннект, а потом тут же возобновляю) Ещё таки пассатижи могут наступить при запуске второй копии программы, которая слушает. Этот код Винсак Серверу WinSock1.close sub winsock1_close() winsock1.close end sub Страница: 1 |
Вопрос: Winsock дает ошибку Adress Already in Use
Добавлено: 18.06.02 16:15
Автор вопроса: Rebel | Web-сайт:
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
SAVok
ICQ: 155153916
Вопросов: 2
Ответов: 126
Профиль | | #1
Добавлено: 18.06.02 16:24
Номер ответа: 2
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #2
Добавлено: 18.06.02 16:34
Debug.Print Time & "Client with ID: " & CStr(requestID) & " RequestConnect..."
Номер ответа: 3
Автор ответа:
Rebel
Вопросов: 32
Ответов: 50
Web-сайт:
Профиль | | #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
Номер ответа: 6
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #6
Добавлено: 28.06.02 12:04
надо проклозить винсак!