всем доброго времени суток
у меня загвоздка
клиент серверное приложение
вот код клиента
Enumeration
#Window_0
EndEnumerationEnumeration
#PopupMenu_0
EndEnumerationEnumeration
#StatusBar_0
EndEnumerationEnumeration
#arial
EndEnumerationGlobal Port = 6832
Global ConnectionID
Global conect
Global adduser$
Global ConnectTimeradduser$=Chr(159)
UsePNGImageEncoder() ; Поддержка сохренения рисунков в PNG форматеInitNetwork()
Procedure TimerConnected()
Shared ConnectTimer
ConnectTimer+1
conect=0
SetWindowTitle(#Window_0, ""+Str(ConnectTimer))
If ConnectTimer>=60
ConnectTimer=0
KillTimer_(WindowID(#Window_0), 2)
Goto ren
EndIf
EndProcedureProcedure Open_Client()
If OpenWindow(#Window_0, 0, 0, 405, 200, "NetControl (Client)",#PB_Window_SystemMenu |#PB_Window_MinimizeGadget|#PB_Window_TitleBar |#PB_Window_ScreenCentered)
hBrush1 = CreateSolidBrush_(RGB($00,$00,$00))
SetClassLong_(WindowID(#Window_0), #GCL_HBRBACKGROUND, hBrush1)
If CreateStatusBar(#StatusBar_0, WindowID(#Window_0))
StatusBarText(#StatusBar_0, 0, "Сервер отключен...Ожидается соединение", #PB_StatusBar_Center)
EndIf
CreatePopupMenu(#PopupMenu_0)
EndIf
EndProcedureProcedure Connect_Server()
ren:
ReadFile(1, "config.cfg")
ConnectionID = OpenNetworkConnection(ReadString(1),Port)
If ConnectionID
KillTimer_(WindowID(#Window_0), 2)
StatusBarText(0, 0, "Клиент успешно подключен...", #PB_StatusBar_Center)
conect=1
Else
SetTimer_(WindowID(#Window_0), 2, 1000, @TimerConnected())
EndIfIf conect=1
text$=adduser$+Hostname()+">"
SendNetworkString(ConnectionID,text$)
EndIf
EndProcedureProcedure CommanServer(name_consol$)
;Делаем скриншот рабочего стола, и пересылаем файл серверу
If name_consol$="snapshot"
CaptureFullScreen() ; Создание скриншота всего экрана
name_screen$="SnapShot.png"
SaveCapture(name_screen$,#PB_ImagePlugin_PNG,0) ; Сохренение скриншота в виде рисунка в формате png
SendNetworkString(ConnectionID,"s")
SendNetworkFile(ConnectionID,name_screen$)
DeleteFile(name_screen$)
EndIf
;
If name_consol$="scandisc"EndIf
;Получаем список запущенных программ клиента и пересылаем серверу
If name_consol$="runprogramms"
EnumProcessInit()
name_file$="RunProgramm.txt"
CreateFile(0,name_file$)
Repeat
Temp.s=EnumProcess()
WriteStringN(0,Temp ,#PB_UTF8)
Until Temp=""
CloseFile(0)
SendNetworkString(ConnectionID,"r")
SendNetworkFile(ConnectionID,name_file$)
DeleteFile(name_file$)
EndIf
;Отключаем клиента от сервера и переходим в режим ожидания
If name_consol$="quit"
CloseNetworkConnection(ConnectionID)
StatusBarText(#StatusBar_0, 0, "Сервер отключен...Ожидается соединение", #PB_StatusBar_Center)
SetTimer_(WindowID(#Window_0), 2, 1000, @TimerConnected())
EndIf;Завершаем программу клиента
If name_consol$="exit"
End
EndIfEndProcedure
Open_Client()
Connect_Server()Repeat
Event=WaitWindowEvent(1)If conect=1
If NetworkClientEvent(ConnectionID)=#PB_NetworkEvent_Data
*mem=AllocateMemory(10000); Память под данные
If *mem
ReceiveNetworkData(ConnectionID,*mem,10000) ; Считывание данных отправленных сервером
name_consol$=PeekS(*mem)
CommanServer(name_consol$)
FreeMemory(*mem)
EndIf
EndIfIf NetworkClientEvent(ConnectionID)=#PB_NetworkEvent_File
ReceiveNetworkFile(ConnectionID,"Update.exe") ; Считывание файла от сервера
EndIfEndIf
Until Event= #PB_Event_CloseWindow
If ConnectionID
CloseNetworkConnection(ConnectionID)
EndIf
End
и всё работает, но нужно дополнить его парой функций,
1. на сервер стоит порт кнокинг сервер, нужно чтоб клиент каждые 20 секунд стучался на сервер по портам 9000, 9001, 9002
просто пытался соединится, или что нить туда слал
2. клиент имеет интерфейс, как чёрное окно, возможно ли изменить фон на картинку?
если подскажите как заставить его каждые 20 секунд стучаться по указанным портам и картинку на фон, буду оч благодарен