Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2011, 19:59   #1
vangog
Новичок
Джуниор
 
Регистрация: 11.09.2011
Сообщений: 1
Вопрос проблемы в клиент серверном приложении

Доброго время суток!

вот столкнулся с такой проблемой. пишу чат 1 на 1 в данном случае.

суть проблемы в том что что бы принять сообщение от другого нужно все время прослушивать порт.

но вот не задача отправить из за этого не получается
вот этот код запускается в отдельном потоке:
Код:
public void Server() 
      { 
         IPHostEntry ipHost = Dns.Resolve("localhost"); 
         IPAddress ipAddr = ipHost.AddressList[0]; 
         IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000); 

         Socket sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 

         try 
         { 
            sListener.Bind(ipEndPoint); 
            sListener.Listen(1); 

                ActionReadDATA("Ожидается подключение к " +  ipEndPoint);
                bReadMesg = false;

                Socket handler = sListener.Accept();

                string data = "";
                WriteDATA = "Вас приветствует сервер";

                while (!bExitProg)//цикл для приема и передачи сообщений
                {

                   if (bReadMesg)//принимаем
                    {
                      while (true)
                        {
                           
                            byte[] bytes = new byte[1024];

                            int bytesRec = handler.Receive(bytes);

                            data += Encoding.UTF8.GetString(bytes, 0, bytesRec);

                            if (data.IndexOf("<TheEnd>") > -1) //конец сообщения
                            {
                                bReadMesg = false;
                                break;
                            }

                            if (data.IndexOf("<TheEndSocket>") > -1) //конец соеденения
                            {
                                bExitProg = true;
                                bReadMesg = false;
                                break;
                            }
                           
                       }
                        ActionReadDATA(data);
                        data = "";
                    }

                    

                    if (bSendMesg)//отправляем
                    {
                       
                            byte[] msg = Encoding.UTF8.GetBytes(WriteDATA + "<TheEnd>");

                            handler.Send(msg);
                            WriteDATA = "";
                            bSendMesg = false;
                       
                    }

                }
                handler.Shutdown(SocketShutdown.Both);
                handler.Close();
            }

         catch(Exception e) 
         {
             ActionReadDATA(e.ToString()); 
         }
         
      } // end of Main
как же исправить? уже просто сил не хватает(((((((((((
Вложения
Тип файла: zip kur_AIS_OOP_35.zip (445.3 Кб, 5 просмотров)
vangog вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WIN32 API. Проблемы с созданием окна в консольном приложении Magnuse Помощь студентам 1 23.01.2011 14:34
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
Клиент-сервер+MySQL InterBase проблемы в подключением 2 клиентов. Vohakisa Работа с сетью в Delphi 0 21.05.2010 19:28
FibPlus в клиент-серверном приложении Rusland Работа с сетью в Delphi 0 13.04.2010 14:04
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18