سلام
ممنون از پاسختون. این وب سرویس به نظرم ایده خوبیه. خودم سرچ می کنم اما اگه نمونه ای می شناسید ممنون می شم لینکشو بفرستید
امنیت اهمینتی نداره اما REST چی هست؟ نشنیده بودم
خطا فقط همونه که عرض کردم، برنامه آندروید یه مدت هنگ می کنه و بعدش پیغام میاد که می خوای بیشتر صبر کنی یا اینو ببندی چون داره خیلی طول می ده. توی برنامه سی شارپ هم Break point گذاشتم اما هیچ وقت به اونجا نرسید. بعدا سعی کردم از کامپیوتر آی پی گوشی رو ping کنم که دیدم اصلا دسترسی بهش نیست و Destination unreachable می ده.
در هر صورت اینم کد سی شارپ:
class clApplicationContext : ApplicationContext
{
private TcpListener tcpListener;
private Thread listenThread;
Form1 lampsForm;
private string _data;
string ReceivedData
{
get
{
return _data;
}
set
{
_data = value;
if (value.ToLower() == "first")
{
lampsForm.toggleFirst();
}
else
{
lampsForm.toggleSec();
}
}
}
public clApplicationContext()
{
lampsForm = new Form1();
this.tcpListener = new TcpListener(IPAddress.Any, 8080);
this.listenThread = new Thread(new ThreadStart(ListenForClients));
this.listenThread.Start();
}
private void ListenForClients()
{
this.tcpListener.Start();
while (true)
{
//blocks until a client has connected to the server
TcpClient client = this.tcpListener.AcceptTcpClient();
//create a thread to handle communication
//with connected client
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
}
private void HandleClientComm(object client)
{
TcpClient tcpClient = (TcpClient)client;
NetworkStream clientStream = tcpClient.GetStream();
byte[] message = new byte[4096];
int bytesRead;
while (true)
{
bytesRead = 0;
try
{
//blocks until a client sends a message
bytesRead = clientStream.Read(message, 0, 4096);
}
catch
{
//a socket error has occured
break;
}
if (bytesRead == 0)
{
//the client has disconnected from the server
break;
}
//message has successfully been received
ASCIIEncoding encoder = new ASCIIEncoding();
ReceivedData = encoder.GetString(message, 0, bytesRead);
//System.Diagnostics.Debug.WriteLine(received);
}
tcpClient.Close();
}
}