C# TCP Start & Stop

Status
Niet open voor verdere reacties.

cuperuskevin

Gebruiker
Lid geworden
18 nov 2011
Berichten
113
Hallo mensen,

ik heb een class gemaakt genaamd connection.cs
en dit staat erin:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Net.Sockets;
using System.Threading;
using System.Windows.Forms;
using System.Net;

namespace Talk_It_Server.TCP
{
    class Connection
    {
        public void Start()
        {
            TcpListener serverSocket = new TcpListener(IPAddress.Any, 3167);
            TcpClient clientSocket = default(TcpClient);
            int counter = 0;

            serverSocket.Start();

            counter = 0;
            while (true)
            {

                counter += 1;
                clientSocket = serverSocket.AcceptTcpClient();
                Console.WriteLine("Accepted Connection Nr. " + Convert.ToString(counter));
                handleClinet client = new handleClinet();
                client.startClient(clientSocket, Convert.ToString(counter));
            }
            clientSocket.Close();
            serverSocket.Stop();
        }

        public class handleClinet
        {
            TcpClient clientSocket;
            string clNo;
            public void startClient(TcpClient inClientSocket, string clineNo)
            {
                this.clientSocket = inClientSocket;
                this.clNo = clineNo;
                Thread ctThread = new Thread(doChat);
                ctThread.Start();
            }
            private void doChat()
            {
                int requestCount = 0;
                byte[] bytesFrom = new byte[10025];
                string dataFromClient = null;
                Byte[] sendBytes = null;
                string serverResponse = null;
                string rCount = null;
                requestCount = 0;

                while ((true))
                {
                    try
                    {

                        requestCount = requestCount + 1;
                        NetworkStream networkStream = clientSocket.GetStream();
                        networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
                        dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
                        dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));
                        Console.WriteLine(clNo + dataFromClient);



                        rCount = Convert.ToString(requestCount);
                        // clNo = Client Number
                        // rCount = Packet send number
                        serverResponse = "Test Packet sent";
                        sendBytes = Encoding.ASCII.GetBytes(serverResponse);
                        networkStream.Write(sendBytes, 0, sendBytes.Length);
                        networkStream.Flush();

                        Main_Program Main = new Main_Program();
                        Main.Debug(serverResponse, "NewLine");
                    }
                    catch
                    {
                        return;
                    }
                }
            }
        }
    } 
}

ik heb een Main_Program.cs en dat is een form mijn vraag is nu met het form kan ik wel de tcp starten maar niet stoppen.... hoe kan ik hem laten starten en stopen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan