| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | «  : 04-08-2009 02:23 »  |  | 
 
 Парни! Подскажите пожалуйста! Как передать сообщение определенному IP адресу??? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Naghual | 
								|  | « Ответ #1 : 04-08-2009 07:42 »  |  | 
 
 Для начала определим понятия.Что есть Сообщение и что есть Передать?
 Должно ли оно быть  в каком-то определенном формате-протоколе?
 Должны ли мы задуматься над тем что-бы оно было принято?
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #2 : 04-08-2009 15:52 »  |  | 
 
 Ну связываемся мы по sckTCPProtocol Формат текстовый
 Короче... ТекстБокс, в него пишим сообщение и отправляем определенному IP адресу...
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #3 : 04-08-2009 16:01 »  |  | 
 
 Передать сообшение то ерунда. А вот принять его, тут проблемы. Настраиваеш свой компонент IP адрес + порт. И отсылаеш сообшение. Принимаюшая сторона должна прослушивать заданный порт и при получении сообшения, отрабатывать его. Дальше не помогу, VB не знаю. |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	| 
			| 
					
						| Naghual | 
								|  | « Ответ #4 : 04-08-2009 16:11 »  |  | 
 
 JohnBraxton, Вы не ответили на мой последний вопрос. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #5 : 05-08-2009 02:24 »  |  | 
 
 Ну я уже сделал клиентскую и серверную часть программы. Прога что то на подобе локального чата, работает нормально, слушает, принимает, в общем проблем нет. Но сервак построен так что при получении сообщения от клиента, он разсылает его всем подключенным клиентам. Вот я и хотел узнать как можно отправить сообщение определенному клиенту зная его IP адресу. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #6 : 05-08-2009 03:19 »  |  | 
 
 JohnBraxton, расскажи, как реализовал... |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Naghual | 
								|  | « Ответ #7 : 05-08-2009 06:52 »  |  | 
 
 JohnBraxton, если вы действительно уже сделали то, о чем написали, тогда Ваш вопрос выглядит несколько дилетантски |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #8 : 05-08-2009 07:46 »  |  | 
 
 Option ExplicitPrivate Const ws_LOCAL_PORT = 353
 Private Const MAX_SESSIONS = 11
 
 
 
 Private Sub ws_ConnectionRequest(Index As Integer, ByVal requestID As Long)
 Dim i As Integer
 Dim msg As String
 
 'Если слушаем
 If Index = 0 Then
 'Ищим открытый сеанс
 For i = 1 To MAX_SESSIONS
 With ws_d_depo(i)
 If .State = sckClosed Then
 'Подключаемся к сеансу i
 .Accept requestID
 'Выходим из цикла
 Exit For
 End If
 End With
 Next
 End If
 End Sub
 
 Private Sub ws_DataArrival(Index As Integer, ByVal bytesTotal As Long)
 Dim msg As String
 Dim i as Integer
 'Получаем сообщение
 ws(Index).GetData msg, , bytesTotal
 
 'Заносим в список
 lstMessages.AddItem msg
 
 For i =1 To MAX_SESSIONS
 
 With ws(i)
 If .State = 7 then ' sckConnected
 .SendData msg ' Передаем текущему клиенту
 ' Передаем остальным
 DoEvents
 End With
 Next
 End if
 End Sub
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #9 : 05-08-2009 07:47 »  |  | 
 
 Ну просто я не знаю как написать чтоб WS передавал только определенному клиенту...Я пока только учусь... вот и интересуюсь....
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Naghual | 
								|  | « Ответ #10 : 05-08-2009 08:15 »  |  | 
 
 Вы привели кусок кода для приема сообщений. К тому-же какой-то странный...  Наверное недописанный.Но спрашиваете о передаче.  Где же ваш код передачи?
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #11 : 05-08-2009 09:26 »  |  | 
 
 Да! Это код приема сообщения на сервере и рассылка остальным клиентам
 подключение к серваку:
 Private Sub Form_Load()
 With ws
 .Close
 .Protocol = sckTCPProtocol
 .RemoteHost = "127.0.0.1"
 .RemotePort = 353
 .Connect
 End With
 
 
 
 код приема msg на клиенте:
 Dim msg As String
 
 ws.GetData msg, , bytesTotal
 Text1.Text = msg ' Допустим
 
 Отправка:
 Dim msg As String
 
 If ws.State = sckConnected then
 msg = Text2.Text
 ws.SendData msg
 End If
 
 
 
 
 
 
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Naghual | 
								|  | « Ответ #12 : 05-08-2009 09:44 »  |  | 
 
  А RemoteHost тебя не наводит на умные мысли? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #13 :  05-08-2009 14:05 »   |  | 
 
 Да я тоже обратил внимание.. Просто не знаю как правельно написать... |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #14 : 05-08-2009 14:09 »  |  | 
 
 Это же я использую для подключения к серверу... а не для передачи.. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Naghual | 
								|  | « Ответ #15 : 05-08-2009 14:47 »  |  | 
 
    Жжош!  А передача ведется не на тот сервер к которому подключился? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #16 : 05-08-2009 16:22 »  |  | 
 
 Да вы не поняли... сообщение на сервак передается, сервак передает остальным клиентам... Все работает... вот с сервака на определенный IP адрес я не знаю как!!!  |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Алексей++ 
								глобальный и пушистыйГлобальный модератор    Offline 
								Сообщений: 13
								
								
								
								
								
							 | 
								|  | « Ответ #17 : 05-08-2009 16:25 »  |  | 
 
 JohnBraxton, на сервере нужно завести клиентский сокет, который подключится к нужному IP (а на нужном IP должна быть слушалка-сервер). Что сложного то ?   |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| JohnBraxton 
								Гость
 | 
								|  | « Ответ #18 : 05-08-2009 16:27 »  |  | 
 
 Сам код!!! я не знаю как пишется!!
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Naghual | 
								|  | « Ответ #19 : 05-08-2009 16:29 »  |  | 
 
 У тебя уже все есть.Просто вместо 127.0.0.1 напиши Айпишник требуемого компа
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  |