PDA

View Full Version : سوال: مشکل در ایجاد ارتباط میان اندروید و برنامه ویندوزی



reza.avoor
یک شنبه 21 تیر 1394, 14:56 عصر
سلام !بالاخره بعد از کلی تلاش و زیر و رو کردن گوگل بد بخت!تونستم دوتا برنامه بسازم که از طریق tcp باهم ارتباط دارند.یکیشون تو گوشیم و اون یکی رو کامپیوتر.برنامه خیلی عالی کار میکنع و کانکت میشه اما نمیدونم چرا بعد از کانکت شدن,برنامه اندرویدیم یهو میپره بیرون!!هیچ اروری هم نمیده یهو از برنامه خارج میشه کدهای برنامه رو میزارم دوستان اگه میتونن خواهشا راهنمایی کنن:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\
کد های برنامه server که رو گوشی اجرا میشه به زبان C#‎‎:

private void Connect()
{
try
{
FindViewById<Button>(Resource.Id.btnConnect).Text = "Waiting for Connect a Client...";
ipHostInfo = Dns.Resolve(Dns.GetHostName());
ipAdd = ipHostInfo.AddressList[0];
localEndPoint = new IPEndPoint(ipAdd, 1376);
listner.Bind(localEndPoint);
listner.Listen(maxClient);


Thread th1 = new Thread(new ThreadStart(AcceptStart));
th1.Start();
}
catch (Exception ex)
{
//Toast t = Toast.MakeText(this,ex.Message,ToastLength.Long);
//t.Show();
FindViewById<TextView>(Resource.Id.lstMsg).Text = ex.Message;
}
}
//-----------------------------------------
//----------------------------------------- Accept
private void AcceptStart()
{
try
{
handler = listner.Accept();
Thread th2 = new Thread(new ThreadStart(DataReceive));
th2.Start();
FindViewById<Button>(Resource.Id.btnConnect).Text = "Connected";
//String ClientIP = ((IPEndPoint)handler.RemoteEndPoint).Address.ToStr ing();
}
catch (Exception ex)
{
FindViewById<TextView>(Resource.Id.lstMsg).Text = ex.Message;
}
}
//----------------------------------------- Data Receive
private void DataReceive()
{
try
{
byte[] bytes = new byte[1000];
int byteRec;


while (true)
{
while (true)
{
byteRec = handler.Receive(bytes);
if (byteRec > 0)
{
data = System.Text.Encoding.UTF8.GetString(bytes, 0, byteRec);
break;
}
}


FindViewById<TextView>(Resource.Id.lstMsg).Text += "Client: " + data + "//";
}
}
catch (Exception ex)
{
FindViewById<TextView>(Resource.Id.lstMsg).Text = ex.Message;
}
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
کد های برنامه client که رو کامپیوتر اجرا میشه به زبان C#‎‎:
private void Connect()
{
try
{
ipHostInfo = Dns.Resolve(txtServerIP.Text);
ipAdd = ipHostInfo.AddressList[0];
remoteEndPoint = new IPEndPoint(ipAdd, 1376);
client.Connect(remoteEndPoint);


th1 = new Thread(new ThreadStart(DataReceive));
th1.Start();


EnableAfterConnect(true);
btnConnectText("Connected!!");


}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//----------------------------------------- Data Receive
private void DataReceive()
{
try
{
byte[] bytes = new byte[1000];
int byteRec;


while (true)
{
while (true)
{
byteRec = client.Receive(bytes);
if (byteRec > 0)
{
data = System.Text.Encoding.UTF8.GetString(bytes, 0, byteRec);
break;
}
}


FillLstMsg(data);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\

reza.avoor
یک شنبه 21 تیر 1394, 23:29 عصر
مشکل حل شد!! ایراد از دستور Resource.Id.btnConnect).Text = "Connected";
بود.
جواب که ندادید لااقل بگید چرا مشکل داشت این خط! ؟؟. ،