Серверное приложение, сокеты - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Есть код простого серверного приложения:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net.Sockets;
using System.Net;
using System.Threading;
 
namespace serv
{
    class Program
    {
        public static Socket serv;
        static void Main(string[] args)
        {
        //настраивает сокет
            serv = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            // задаем ip адреса и порт
            IPEndPoint point = new IPEndPoint(IPAddress.Any, 777);
            serv.Bind(point);
            Console.WriteLine("777 is waitng for u");
            serv.Listen(10);
            //запускаем обработчик входящих-исходящих данных
            Server();
            
        }

        static void Server()
        {
            
            while (true)
            {
 
                Socket handle = serv.Accept();
                string data = null;
 
                while (true)
                {
                //если клиент приконнектился - пишем приветствие
                    Console.WriteLine("Client connected");
                            handle.Send(System.Text.Encoding.Default.GetBytes("Hello!"));
 
                    while (true)
                    {
                    
                        try
                        {
                            byte[] bytes = new byte[1024];
                            int i = handle.Receive(bytes);
                            data = System.Text.Encoding.Default.GetString(bytes, 0, i);//полученная строка
                            if (data.Length == 0)
                            {
                                handle.Send(System.Text.Encoding.Default.GetBytes(""));                                
                            }
                            //в цикле переделываем входящую строку в верхний регистр
                            else
                            {
                                Console.WriteLine("Text rec.: {0}", data);
                                data = data.ToUpper();//<==
                                //..и отсылаем обратно в клиент
                                handle.Send(System.Text.Encoding.Default.GetBytes(data));
                                if (data == "terminate_client_connection")
                                {
                                    break;
                                }
                            }
                        }
                        catch
                        {
                            break;
                        }
 
                    }
 
                    break;
                }
                handle.Shutdown(SocketShutdown.Both);
                handle.Close();
                Console.WriteLine("Client disconnected");
 
            }
        }
    }
}
как сделать так, чтобы к серверу могло подключаться n-ное количествое клиентов? пробовал
Thread t1 = new Thread(new ThreadStart(Server));
t1.Start();
- но ничего не выходит.

Решение задачи: «Серверное приложение, сокеты»

textual
Листинг программы
Thread sub = new Thread(new ThreadStart(SubServ));
                sub.Start(handle);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы