Как решить ошибку загрузки формы Клиент-Сервер - PullRequest
0 голосов
/ 30 марта 2011
TcpListener  serverSocket = new TcpListener(ip, port);
TcpClient  clientSocket =new TcpClient();  //default tcpclient socket;

serverSocket.Start();


counter = 0;
while (true)
{
    counter += 1;
    clientSocket = serverSocket.AcceptTcpClient();

    Console.WriteLine(" >> " + "Client No:" + Convert.ToString(counter) + " started!");   
    LAN_Quiz.ClientHandle.HandleClient hc = new LAN_Quiz.ClientHandle.HandleClient();

    hc.ClientHandlingStarted(clientSocket, counter.ToString());


    //Get the client ip address

    string clientIPAddress = "Your Ip Address is: " + IPAddress.Parse(((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString()));

    NetworkStream stream = client.GetStream();

    ..
    ... 
}       

В приложении Windows Form здесь у меня есть проблема, почему форма не загружалась, когда я использовал

clientSocket = serverSocket.AcceptTcpClient(); 

и код отдыха

, но он может принять клиентазапрос;Теперь, как решить эту проблему, а также, пожалуйста, дайте мне информацию об использовании таймера

1 Ответ

0 голосов
/ 31 марта 2011
public partial class MyForm : Form
{
    private Thread _serverThread;

    public Form()
    {
         _serverThread = new Thread(ServerThread).Start();
    }

    private void ServerThread(object state)
    {
        //add the socket code here.
    }
}

Это бы сработало. Однако я не рекомендую его, поскольку он нарушает принцип единой ответственности (Google). Поместите весь код сокета в отдельный класс (включая код потока) и используйте этот класс из основной формы.

...