TCP Client - Server

KarlPichler

Mitglied
Hallo liebes Forum,

ich bin neu in C#.
ich möchte ein Programm welches eine TCP IP Verbindung mit einem anderen Teilnehmer herstellt, und wo ich daten senden und empfangen kann.

ich habe eine Reihe an Buttons, wenn ich einen davon drücke, sollte ein spezieller string gesendet werden.

meine Porbleme:
ich kann mitlerweile eine Verbindung herstellen.
** wie kann ich die Verbindung mit einem Button wieder schön schließen.
** das senden funtkioniert nicht. (bekomme ein NullReferenzException)
** wie kann ich das Programm "schön" lösen, bei einem Verbindungserror erhängt sich das ganze Programm
** Receive Methode?

Code:
namespace ******
{
    public partial class Form1 : Form
    {

        Socket sock1 = null;
	Socket sock2 = null;

        public Form1()
        {
            InitializeComponent();
        }


        private void SendMsg1_Click(object sender, EventArgs e)
        {

                sock1.Send(Encoding.ASCII.GetBytes("Msg1"));

        }

        private void SendMsg2_Click(object sender, EventArgs e)
        {

                sock1.Send(Encoding.ASCII.GetBytes("Msg2"));

        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            connect("10.150.52.16", 7070, sock1);
        }

        private void btnConnect2_Click(object sender, EventArgs e)
        {
            connect("10.150.52.16", 7071, sock2);
        }

        public void connect(string IPv4, int port, Socket sock)
        {
            try
            {
                IPAddress ipo = IPAddress.Parse(IPv4);
                IPEndPoint ipEo = new IPEndPoint(ipo, port);
                sock = new Socket(ipEo.AddressFamily,
                                    SocketType.Stream,
                                    ProtocolType.Tcp);

                sock.Connect(ipEo);
                if (sock.Connected)
                {
                    ConStatus.Text = "Connection";
                }
            }
            catch (Exception el)
            {
                Console.WriteLine(el.Message);
                ConStatus.Text = "Error";
            }
        }
    }
}

ich hab schon viele sachen versucht, aber mir fehlt die Logik dazu. Ich bitte um eure Hilfe.

Danke
 

Neue Beiträge

Zurück