Witam,
Napisałem działającą tcp czat lan aplikacje na windows. Następnie chciałem przenieść aplikacje na androida poprzez xamarina by połączyć komputer(server) i telefon(client)
Ustawilem na xamarinie permission Internet oraz operuję na wifi 192.168.x.x
Program się łączy z serwerem( serwer na kompie):
private void buttonClickConnect(object sender, EventArgs e)
{
client = new TcpClient();
IPEndPoint IP_End = new IPEndPoint(IPAddress.Parse("192.168.1.1"), int.Parse("13000"));
try
{
client.Connect(IP_End);
if (client.Connected)
{
textviewConversation.Text += "Connected to server" + "\n";
STR = new StreamReader(client.GetStream());
STW = new StreamWriter(client.GetStream());
STW.AutoFlush = true;
worker1.RunWorkerAsync();
worker2.WorkerSupportsCancellation = true;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Łączy się z serwerem ale nie może wysłać wiadomości. Raz wciskam send to nic sie nie dzieje, drugi raz klikam to wywala że thread jesy busy.
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) //sending message, here error probably
{
if (client.Connected)
{
STW.WriteLine(text_to_send);
}
else
{
Console.WriteLine("send failed !");
}
worker2.CancelAsync();
}
Nie ma pętli w tym wątku powinno zatem wysłać i zwolnić wątek.
Pełny kod napisany na xamarn: http://pastebin.com/DJxHUdXn,
Błagam o pomoc, wierzę ze nie wiele trzeba by to wszystko działało : ))
Pozdrawiam