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