Problema de variables¿?

Iniciado por Codename!!, 26 Febrero 2010, 14:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Codename!!

Buenas! estoy intentado hacer una conexion a traves de TcpListener y Client, el problema esta en que al compilarlo me salta un error en Program.cs en la linea Application.Run(new Form1());
He probado a quitar las variables  publicas y estaticas de arriba pero si las pongo en otros sitios ya no serian accesibles para los demas metodos que necesito hacer, que puedo hacer? que es lo que estoy haciendo mal??
using System;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;

namespace ServerTest
{
    public partial class Form1 : Form
    {
        public static IPAddress IP = IPAddress.Loopback;
        public static TcpListener Listener = new TcpListener(IP, 22222);
        public static Socket s = Listener.AcceptSocket();

        public Form1()
        {
            InitializeComponent();
        }

       public void inicio()
        {
            try
            {
                //////sección ESCUCHA///////
                Listener.Start();
                //////CONEXION///////
                MessageBox.Show("Conexion establecida con " + s.RemoteEndPoint);
                /////RECEPCION/////////
                byte[] buffer = new byte[100];
                int bufferAux = s.Receive(buffer);
                for (int i = 0; i < bufferAux; i++)
                {
                    Convert.ToChar(buffer[i]);
                }
                /////ENVIO//////////
                ASCIIEncoding codificacionEnvio = new ASCIIEncoding();
                s.Send(codificacionEnvio.GetBytes(("test envio")));
            }
            catch
            {
                MessageBox.Show("Error de algun tipo ");
               s.Close();
               Listener.Stop();
               inicio();
               
            }

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            inicio();
        }
    }
}
No te dejes mover por las masas, se tu mismo.





[D4N93R]


MANULOMM

no estoy muy seguro de que esto pueda hacerse en ese punto.


public static Socket s = Listener.AcceptSocket();


haz esto:


public static Socket s = null;

//y en el constructor
        public Form1()
        {
            InitializeComponent();
            s = Listener.AcceptSocket();
        }


Atentamente,

Juan Manuel Lombana
Medellín - Colombia


43H4FH44H45H4CH49H56H45H

El code puede funcionar de esta manera:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public static IPAddress IP;
        public static TcpListener Listener;
        public static Socket s;

        public Form1()
        {
            InitializeComponent();
        }
        public void inicio()
        {
            try
            {
                Listener = null;
                IP = IPAddress.Loopback;
                Listener = new TcpListener(IP, 22222);
                //////sección ESCUCHA///////
                Listener.Start();
                s = Listener.AcceptSocket();
                //////CONEXION///////
                MessageBox.Show("Conexion establecida con " + s.RemoteEndPoint);
                /////RECEPCION/////////
                byte[] buffer = new byte[100];
                int bufferAux = s.Receive(buffer);
                for (int i = 0; i < bufferAux; i++)
                {
                    Convert.ToChar(buffer[i]);
                }
                /////ENVIO//////////
                ASCIIEncoding codificacionEnvio = new ASCIIEncoding();
                s.Send(codificacionEnvio.GetBytes(("test envio")));
                s.Close();
                Listener.Stop();
            }
            catch
            {
                MessageBox.Show("Error de algun tipo ");
                s.Close();
                Listener.Stop();
                inicio();

            }

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            inicio();
        }
    }
}


pero esta mal planteado a mi criterio, fijate los ejemplos de MSDN para ubicarte mejor.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Codename!!

Asi es :)

muchas gracias, estoy comenzando con c# y eso era un error de base!  :-\

Gracias por vuestras respuestas!
No te dejes mover por las masas, se tu mismo.