|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Коннект |
|
[решено] Коннект
|
![]() Старожил Сообщения: 398 |
Помогите плиз сделать скрипт состоящий из клиента и сервера. Клиент состоит из окна и 6 кнопок по нажатию кнопки в зависимости от нажатой серверу отправляется символ а тот в свою очередь запускает функцию в зависимости от символа. Пытался делать сам но не конектит, только на локалке а на другой комп не конектит. + Конектиться он долже по паролю.
|
|
------- Отправлено: 15:37, 15-02-2009 |
![]() Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать И вот по ходу ещё вопросик возник:
Почему не передаются длинные значения? Например 40 слов разделённые "|". Каждое слово гдето из 8 символов. Это както можно поправить? |
------- Отправлено: 14:06, 15-03-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Или хотябы скажите ктонибудь как передать одномерный массив?
|
------- Отправлено: 00:09, 18-03-2009 | #12 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
это к той прожке, что инфо собирает с компа собираетесь прикрутить? если да - то гараздо проще на файлах. даже стоит попробовать sql, если не ошибаюсь в udf-ах по ней есть. |
|
------- Отправлено: 02:29, 18-03-2009 | #13 |
![]() Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата proxy:
Цитата proxy:
По частям тоже не понятно, можно передавать номер части через |, но в это время серверу может передаться чёнить ещё, да и как сделать чтобы сервер ждал пока придёт определённая часть? |
||
------- Отправлено: 08:33, 18-03-2009 | #14 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать с серваками хз ))))
а вот на файлах думаю легко можно сделать, sql еще не смотрел, но как минимум тот же txt легко покатит ) |
------- Отправлено: 08:45, 18-03-2009 | #15 |
![]() Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата proxy:
А как? |
|
------- Отправлено: 15:48, 18-03-2009 | #16 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
![]() Цитата morgan1991:
|
||
Отправлено: 16:43, 18-03-2009 | #17 |
![]() Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 17:38, 18-03-2009 | #18 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
|
|
Отправлено: 02:06, 19-03-2009 | #19 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать мысль пришла - сервер может сам отрубить свою очередь таким же образом,
предыдущий вариант с ограничителем: #include <GUIConstantsEx.au3> Opt('MustDeclareVars', 1) Example() Func Example() Local $szIPLocal = @IPAddress1 Local $szIPRemote = @IPAddress1 Local $LocalPort = 33890 Local $RemotePort = 33891 Local $TempSocket, $MainSocket=-1, $GOOEY, $InputSocket=-1, $OutputSocket=-1, $szIP_Accepted Local $Bttn1, $Bttn2, $Edit1, $Edit2 Local $msg, $recv, $szData TCPStartup() $GOOEY = GUICreate("My Server (IP: " & $szIPLocal & ")", 300, 250) $Edit1 = GUICtrlCreateEdit("", 10, 10, 280, 180) $Edit2 = GUICtrlCreateEdit("", 10, 190, 280, 20, 0) $Bttn1 = GUICtrlCreateButton("Connect!", 10, 217, 120) $Bttn2 = GUICtrlCreateButton("Send Text", 170, 217, 120) GUISetState() While 1 If $MainSocket = -1 Then $MainSocket = TCPListen($szIPLocal, $LocalPort, 1) If $MainSocket <> 1 Then If $InputSocket= -1 Then $InputSocket = TCPAccept($MainSocket) If $InputSocket <> -1 Then TCPConnect($szIPLocal, $LocalPort) Else $szIP_Accepted = SocketToIP($InputSocket) $recv = TCPRecv($InputSocket, 2048) If @error Then TCPCloseSocket($InputSocket) TCPCloseSocket($MainSocket ) $MainSocket = -1 $InputSocket= -1 Else If $recv<>"" Then GUICtrlSetData($Edit1, $szIP_Accepted &" > "& $recv & @CRLF & GUICtrlRead($Edit1)) EndIf EndIf EndIf $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop If $msg = $Bttn1 Then If GUICtrlRead($Bttn1)="Connect!" Then $OutputSocket = TCPConnect($szIPRemote, $RemotePort) If @error Then MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error) Else GUICtrlSetData($Bttn1, "Disconnect!") EndIf Else If $OutputSocket<> -1 Then TCPCloseSocket($OutputSocket) $OutputSocket=-1 GUICtrlSetData($Bttn1, "Connect!") EndIf EndIf If $msg = $Bttn2 Then $szData = GUICtrlRead($Edit2) If $OutputSocket<>-1 And $szData<>"" Then TCPSend($OutputSocket, $szData) GUICtrlSetData($Edit1, $szIPLocal &" > "& $szData & @CRLF & GUICtrlRead($Edit1)) EndIf EndIf WEnd If $InputSocket <> -1 Then TCPCloseSocket($InputSocket) If $OutputSocket<> -1 Then TCPCloseSocket($InputSocket) If $MainSocket <> -1 Then TCPCloseSocket($MainSocket) TCPShutdown() EndFunc ;==>Example Func SocketToIP($SHOCKET) Local $sockaddr, $aRet $sockaddr = DllStructCreate("short;ushort;uint;char[8]") $aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _ "ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr)) If Not @error And $aRet[0] = 0 Then $aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3)) If Not @error Then $aRet = $aRet[0] Else $aRet = 0 EndIf $sockaddr = 0 Return $aRet EndFunc ;==>SocketToIP |
Отправлено: 09:55, 19-03-2009 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Коннект к удаленному серверу | Artem-Samsung | Вебмастеру | 1 | 13-08-2009 01:06 | |
[решено] Обрывается VPN подключение. Коннект с Win XP на Win server 2003 | _soldat_ | Microsoft Windows NT/2000/2003 | 3 | 06-12-2008 02:16 | |
[решено] [решено] медленный коннект к ftpd | pom3ec | Общий по FreeBSD | 11 | 17-11-2006 19:57 | |
Коннект с Инетом !!! | The Time | Microsoft Windows 95/98/Me (архив) | 1 | 06-05-2005 07:02 | |
Коннект по ФТП | byka | Сетевые технологии | 9 | 14-05-2004 00:18 |
|