Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к методам через точку 
V
    Опции темы
ЛунныйОборотень
Дата 24.6.2013, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 12.11.2006

Репутация: нет
Всего: 1



Здравствуйте!

Изучаю с# на примерах. 

Не могу понять, где ошибся: создал класс, написал функции.
В основном классе и методе 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 { }
        }
        
    }
}


Спасибо.
П.С. перехожу с другого языка и платформы, могу где то сильно ошибаться:)

PM MAIL   Вверх
ЛунныйОборотень
Дата 24.6.2013, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 12.11.2006

Репутация: нет
Всего: 1



Тьфу. Там же надо public ставить!!
Совсем глаз замылился!))

Прошу прощения!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.