как сделать двух программ чтоб уних текст боксы были сообща точнее сделать чат.
Типа отправлять сообщения с одного текст бокса по IP на такойже текст бокс у другого участника локальной сетки.
Надеюсь моя мысля вам понятна!
, думаю справишся.знаю мало по малу англ но не до такой степени!
GoodWin74 писал(а):Укажите точный путь на етот семпл или напишите тут!
Download Size: 6.0 MB
мне че изза одного примера качать 6 метров(101 пример) ну ето уж слишком!!!
'-----------------------------------------------------------------------
' This file is part of the Microsoft .NET Framework SDK Code Samples.
'
' Copyright (C) Microsoft Corporation. All rights reserved.
'
'This source code is intended only as a supplement to Microsoft
'Development Tools and/or on-line documentation. See these other
'materials for detailed information regarding Microsoft code samples.
'
'THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
'KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
'IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
'PARTICULAR PURPOSE.
'-----------------------------------------------------------------------
Imports System
Imports System.Globalization
Imports System.Net
Imports System.Net.Sockets
Imports System.Threading
Imports System.Text
Namespace Microsoft.Samples.QuickStart.HowTo.Net.TcpUdp
Public Class Chat
Private Shared m_Client As UDPClient
Private Shared ListenerPort As Integer = 8080
Private Shared SenderPort As Integer = 8080
Private Shared LocalPort As Integer
Private Shared RemotePort As Integer
Private Shared m_szHostName As String
Private Shared m_GroupAddress As IPAddress
Private Shared m_LocalHost As IPHostEntry
Private Shared m_RemoteEP As IPEndPoint
Private Shared m_Done As Boolean = False
Public Shared Sub Usage()
Console.WriteLine("UDP Multicast Chat Utility")
Console.WriteLine("\nUsage:")
Console.WriteLine("chat.exe")
End Sub
Public Shared Sub Main()
LocalPort = SenderPort
RemotePort = ListenerPort
Dim args As String() = Environment.GetCommandLineArgs()
If (args.Length > 1) Then
' print help message, as this utility doesnt take any arguments
Usage()
Exit Sub
End If
m_szHostName = DNS.GetHostName()
m_LocalHost = DNS.GetHostByName(m_szHostName)
Console.WriteLine("Local Port: {0}, Remote: {1}", LocalPort, RemotePort)
Console.WriteLine("Initializing...")
Initialize()
Console.WriteLine("Starting Listener thread...")
Dim t As Thread
t = New Thread(AddressOf Listener)
t.Start()
Dim buffer() As Byte
Dim ASCII As Encoding = Encoding.ASCII
Dim m_ShuttingDown As Boolean = False
While (Not (m_ShuttingDown))
Dim s As String = Console.ReadLine()
If (s.Length = 0) Then
'continue()
End If
If (String.Compare(s, 0, "@", 0, 1, True, CultureInfo.InvariantCulture) = 0) Then
m_Done = True
' send a terminator to ourselves,
' so that the receiving thread can shut down
s = m_szHostName & ":@"
m_ShuttingDown = True
Else
s = m_szHostName + ":" & s
End If
ReDim buffer(s.Length + 1)
' send data to remote peer
Dim len As Integer = ASCII.GetBytes(s.ToCharArray(), 0, s.Length, buffer, 0)
Dim ecode As Integer = m_Client.Send(buffer, len, m_RemoteEP)
If (ecode <= 0) Then Console.WriteLine("Error in send : " & ecode)
End While
t.Abort()
t.Join()
Console.WriteLine("Closing connection...")
Terminate()
End Sub 'Main
Public Shared Sub Terminate()
m_Client.DropMulticastGroup(m_GroupAddress)
End Sub
Public Shared Sub Initialize()
' instantiate UDPCLient
m_Client = New UDPClient(LocalPort)
' Create an object for Multicast Group
m_GroupAddress = IPAddress.Parse("224.0.0.1")
' Join Group
Try
m_Client.JoinMulticastGroup(m_GroupAddress, 100)
Catch Exc As Exception
Console.WriteLine("Unable to join multicast group")
End Try
' Create Endpoint for peer
m_RemoteEP = New IPEndPoint(m_GroupAddress, RemotePort)
End Sub
Public Shared Sub Listener()
' The listener waits for data to come
' and buffers it.
Try
Thread.Sleep(2000) ' make sure client2 is receiving
Dim ASCII As Encoding = Encoding.ASCII
While (Not m_Done)
Dim endpoint As IPEndPoint
Dim data() As Byte = m_Client.Receive((endpoint))
Dim strData As String = ASCII.GetString(data)
If strData.IndexOf(":@") > 0 Then
' we received a termination indication
' now we have to decide if it is from
' our main thread shutting down, or
' from someone else
Dim separators() As Char = {CChar(":")}
Dim vars() As String = strData.Split(separators)
If (vars(0) = m_szHostName) Then
' this is from ourselves, therefore we end now
Console.WriteLine("shutting down Listener thread...")
' this should have been done by main thread, but we
' do it again for safety
m_Done = True
Else
' this is from someone else
Console.WriteLine("{0} has left the conversation", vars(0))
End If
Else
' this is normal data received from others
' as well as ourselves
' check to see if it is from ourselves before
' we print
If (strData.IndexOf(":") > 0) Then
Dim separators() As Char = {CChar(":")}
Dim vars() As String = strData.Split(separators)
If (vars(0) <> m_szHostName) Then
Console.WriteLine(strData)
End If
End If
End If
End While
Catch
console.WriteLine(Environment.StackTrace)
Exit Sub
End Try
Console.WriteLine("Listener thread finished...")
End Sub
End Class
End Namespace
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36