Red de conocimientos turísticos - Conocimientos sobre calendario chino - Acerca de problemas con Socket en .Net y VB6

Acerca de problemas con Socket en .Net y VB6

Biblioteca de clases System.Net.Sockets

Dos ejemplos

1 Programa del lado del servidor (DateTimeServer.vb)

- - ------------------------------

Sistema de Importaciones

Sistema de Importaciones.Net

Importa System.Net.Sockets

Importa System.Text

Importa System.Threading

Importa System.Globalization

Clase pública DateTimeServer

Public Shared Sub Main()

Atenuar ahora como fecha

Atenuar strDateLine como cadena

Atenuar ASCII As Encoding = Encoding.ASCII

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture

Pruebe

Dim tcpl As New TCPListener(13) 'En el puerto 13 Escuche

tcpl.Start()

Console.WriteLine("Esperando conexión del cliente")

Console.WriteLine("Presione Ctrl+C Salir... ")

While (True)

' Aceptar se bloqueará hasta que alguien se conecte

Dim s As Socket = tcpl.AcceptSocket()

' Obtiene la fecha y hora actuales y luego

' Concatenarlas en una cadena

now = DateTime.Now

strDateLine = now .ToShortDateString() + " " + now.ToLongTimeString()

' Convierte la cadena en una matriz de bytes y envíala

Dim byteDateLine() As Byte = ASCII.GetBytes( strDateLine.ToCharArray() )

s.Send(byteDateLine, byteDateLine.Length, SocketFlags.None)

s.Close()

Console.WriteLine( "{0} enviado ", strDateLine)

Finalizar mientras

Detectar socketError como SocketException

If (socketError.ErrorCode) = 10048 Then

Console.WriteLine("La conexión a este puerto falló. Hay otro servidor escuchando en este puerto.

")

Finalizar si

Finalizar intento

Finalizar sub

Finalizar clase

2. Servidor de adquisición de clientes -side time (Client.vb)

Importaciones System

Importaciones System.IO

Importaciones System.Net

Importaciones System.Net .Sockets

Importa System.Text

Cliente de clase pública

Subprincipal compartido público()

Atenuar tcpc como nuevo TCPClient()

Dim read(35) As Byte

Dim args As String() = Environment.GetCommandLineArgs()

Si (args.Length < 2) Entonces

Console.WriteLine("Especifique el nombre del servidor en la línea de comando")

Salir de Sub

Fin si

Atenuar servidor como String = args(1)

' Verificar que el servidor existe

Pruebe

DNS.GetHostByName(servidor)

Captura

Console.WriteLine("No se puede encontrar el servidor: {0}", servidor)

Salir de Sub

Finalizar intento

' Intente conectarse al servidor

tcpc.Connect(server,13)

' Obtener transmisión

Dim s As Stream

Probar

s = tcpc.GetStream()

Captura exc como InvalidOperationException

Console.WriteLine("No se puede conectar al servidor: {0}", servidor)

Salir Sub

Finalizar intento

' Leer la secuencia y convertirla a ASCII

Dim bytes As Integer = s.Read(read, 0, read.Length )

Dim Time As String = Encoding.ASCII.GetString(read)

' Mostrar datos

Console.WriteLine("{0 } Bytes recibidos", bytes)

Console.WriteLine("La fecha y hora actuales son: {0}", Hora)

tcpc.Close(

)

' Espere la respuesta del usuario para salir

Console.WriteLine("Presione la tecla Intro para salir")

Console.Read()

End Sub

End Class

3. Guarde estos dos archivos y luego ingrese a la herramienta de compilación proporcionada por .net---Símbolo del sistema de Visual Studio .NET 2003

vbc.exe /target:exe /out:DateTimeServer.exe /r:System.dll DateTimeServer.vb

vbc.exe /target:exe /out:Client.exe /r: System.dll Client.vb

Después de una compilación exitosa, se generan dos archivos exe y se abre el programa DateTimeServer.exe en el servidor para monitorear las solicitudes de los clientes.

Escriba el MS- Línea de comando de DOS Ingrese el comando Client.exe Localhost

y verá el efecto