проблемы в клиент серверном приложении
От: newmyface  
Дата: 11.09.11 17:12
Оценка:
Доброго время суток!

вот столкнулся с такой проблемой. пишу чат 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

как же исправить? уже просто сил не хватает(((((((((((

ФАЙЛ проекта http://files.mail.ru/CG797O
проблемы в клиент серверном приложении
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.