Здравствуйте!
Изучаю с# на примерах.
Не могу понять, где ошибся: создал класс, написал функции. В основном классе и методе main создаю объект и пытаюсь вызвать методы через точку.Но почему то они не видятся.
| Код | using System; using System.Collections.Generic; using System.Linq; using System.Text; using TestServer; namespace TestServer { class Program { static void Main(string[] args) { Server mserver = new Server(); Console.WriteLine("Start"); for (; ; ) { } mserver.ServerStart(); // не работает } } }
|
| Код | /* Это тестовый проект в рамках изучения C#. Цель: узнать каким образом происходит сетевое взаимодействие в C# . */
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; using System.Collections; namespace TestServer { class Server { int MAX_CONNECTIONS=50,MAX_PACKET_SIZE=1024; bool isServerRunning; private Hashtable clients; Socket listener; int port = 8000; IPEndPoint Point; private List<Thread> threads = new List<Thread>();// list of Threads
private void ServerStart() { clients = new Hashtable(MAX_CONNECTIONS); isServerRunning = true;
/*Задаем нашему сокету параметры-IPv4,Tcp,байтовый ввод-вывод*/ listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Point = new IPEndPoint(IPAddress.Any, port);// принимаем входящие соединения с любого адреса // Связываем сокет с конечной точкой listener.Bind(Point); listener.Listen(10); // SocketAccepter(); } private void SocketAccepter() { Thread th = new Thread(delegate() { while (isServerRunning) { // Создаем новый сокет , по которому мы можем обращаться к книенту Socket client = listener.Accept(); clients.Add(client, "");// добавляем свежесозданный сокет в таблицу соединений Thread thh = new Thread(delegate() { MessageReceiver(client);// прием пакетов }); } });
/* Запускаем поток и добавляем его в список потоков.Каждому потоку соответствует одно подключение */ th.Start(); threads.Add(th); }
private void MessageReceiver(Socket client) { Thread thread = new Thread(delegate() { while (isServerRunning) { try { byte[] bytes_buffer = new byte[MAX_PACKET_SIZE];// записываем принятые байты в буфер client.Receive(bytes_buffer); if (bytes_buffer.Length != 0) { //Отсылаем принятый пакет от клиента всем клиентам foreach (Socket s_client in clients.Keys) { MessageSender(s_client,bytes_buffer); } } } catch { } } }); }
private void MessageSender(Socket client, byte[] bytes) { try { client.Send(bytes); } catch { } } } }
|
Спасибо. П.С. перехожу с другого языка и платформы, могу где то сильно ошибаться:)
|