PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Повторное подключение


Повторное подключение

Сообщений 1 страница 14 из 14

1

Здравствуйте, как сделать чтобы при неудачном подключении клиента к серверу, он пытался ещё подключатся, до тех пор пока не подключится к серверу ?

Код:
If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID ; подключаемся к серверу
Repeat
SendNetworkFile(ConnectionID, "D:\File.txt")
Until quit = 1
Else ; если подключение не удалось:
; повторять бесконечно раз пока клиент не подключится к серверу
EndIf

0

2

Код:
If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

Repeat
  ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
  If ConnectionID ; подключаемся к серверу
    Repeat
      SendNetworkFile(ConnectionID, "D:\File.txt")
    Until quit = 1
  Else ; если подключение не удалось:
    Delay(1000)
    ; повторять бесконечно раз пока клиент не подключится к серверу
  EndIf
Until ConnectionID

Только зачем после подключения постоянно отсылать один и тот же файл на сервер?

+1

3

Три попытки.

Код:
If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

tryes.i = 0

Repeat
  ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
  If ConnectionID ; подключаемся к серверу
    Break
    Repeat
      ;SendNetworkFile(ConnectionID, "D:\File.txt")
    Until quit = 1
  Else ; если подключение не удалось:
    ; повторять бесконечно раз пока клиент не подключится к серверу
    Debug tryes 
    If tryes = 2
      Break
    EndIf
    tryes + 1
    Continue
  EndIf
ForEver

+1

4

Пётр написал(а):

Только зачем после подключения постоянно отсылать один и тот же файл на сервер?

Спасибо, это чтобы чем нибудь код занять.

0

5

Пётр написал(а):

Только зачем после подключения постоянно отсылать один и тот же файл на сервер?


У меня ещё такой вопрос, как поставить таймер на повторное подключение, допустим если у меня подключение не удалось то должен выполнятся ещё и код без "Delay()". Короче мне нужно поставить таймер на повторное подключение, но только не "Delay()"

Код:
If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

Repeat
  ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
; Выполнять каждые 5 секунд
  If ConnectionID ; подключаемся к серверу
; Выполнять каждые 5 секунд
    Repeat
      SendNetworkFile(ConnectionID, "D:\File.txt")
    Until quit = 1
  Else ; если подключение не удалось:
    ;Здесь мой код
  EndIf
Until ConnectionID

0

6

А что мешает выполнить требуемый код и снова попытаться подключится к серверу?

0

7

Пётр написал(а):

А что мешает выполнить требуемый код и снова попытаться подключится к серверу?


Слишком частое переподключение, начинает глючит код, и неправильно работать

0

8

Каков промежуток времени должен быть межу подключениями?

Foreword написал(а):

Слишком частое переподключение, начинает глючит код

Наверное это из-за багов в коде. Их нужно устранить и проблем не возникнет.

0

9

Пётр написал(а):

Каков промежуток времени должен быть межу подключениями?

Наверное это из-за багов в коде. Их нужно устранить и проблем не возникнет.


Там два кода, один когда клиент подключен, один когда отключен, два кода одинаковы, когда клиент подключен код работает отлично без лагов, когда клиент переподключается код глючит. Так что никаких багов быть не может. Промежуток времени хотя-бы секунд 5

Единственное отличие в них, это то что когда он подключен он передает файл, а так всё.

Отредактировано Foreword (09.06.2013 14:49:05)

0

10

Foreword написал(а):

когда клиент переподключается код глючит

В чем выражаются глюки? В коде производится работа с сетью даже когда нет коннекта?

Foreword написал(а):

Промежуток времени хотя-бы секунд 5

Код:
Else ; если подключение не удалось:
  ConnectTime = Date() + 5
  ;Здесь мой код
  
  While ConnectTime > Date()
    Delay(1000)
  Wend
EndIf

0

11

Пётр написал(а):

В чем выражаются глюки? В коде производится работа с сетью даже когда нет коннекта?


Два кода одинаковы, единственное отличие когда клиент не подключен, он не передает файл и работы с сетью нету.

0

12

Ну что никто не поможет ?

0

13

Выше один из вариантов решения с периодом подключения - 5 секунд. Чем не устроил?
Как помочь если нет ни кода, но описания глюков? Обратись к экстрасенсам.

0

14

Пётр написал(а):

Выше один из вариантов решения с периодом подключения - 5 секунд. Чем не устроил?
Как помочь если нет ни кода, но описания глюков? Обратись к экстрасенсам.


Всё, разобрался, сделал свой таймер, код работает отлично без ошибок. Спасибо за попытку помочь.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Повторное подключение