السلام عليكم
كنت محتار اين اضع هذا الموضوع - هنا ام في قسم السي شارب
لدي برنامج بسيط - عبارة عن كلاينت - يرسل رسالة (string) عبر الشيكة - من جهاز اندرويد
وقمت بتطبيق برنامج اخر بسيط - عبارة عن سيرفر - بلغة السي شارب - يقوم بقراءة و عرض الرسالة
الكلاينت انفذه على جهاز اندرويد
و السيرفر انفذه عى الحاسبة
لكن لا يحدث اي شيء عند التنفيذ
انا متأكد من ان جزء السيرفر شغال - لكن ربما هناك مشكلة في جزء الكلاينت
بصراحة لا ادري هل الفكرة صحيحة و قابلة تطبيق
هذا جزء الكلاينت الخاص بالاندرويد
public class SendCmdClient extends Activity {
private EditText computerIp;
private EditText cmd;
private Button sendButton;
private String serverIpAddress = "";
private boolean connected = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
computerIp = (EditText) findViewById(R.id.ipeditText);
cmd = (EditText) findViewById(R.id.cmdeditText);
sendButton = (Button) findViewById(R.id.button1);
sendButton.setOnClickListener(connectListener);
}
private OnClickListener connectListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (!connected) {
serverIpAddress = computerIp.getText().toString();
Thread cThread = new Thread(new ClientThread());
cThread.start();
}
}
};
public class ClientThread implements Runnable {
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
Log.d("ClientActivity", "C: Connecting...");
Socket socket = new Socket(serverAddr, 8000);
connected = true;
while (connected) {
try {
Log.d("ClientActivity", "C: Sending command.");
PrintWriter out = new PrintWriter(new BufferedWriter(new
OutputStreamWriter(socket.getOutputStream())), true);
out.println(cmd.getText().toString());
Log.d("ClientActivity", "C: Sent.");
} catch (Exception e) {
Log.e("ClientActivity", "S: Error", e);
}
}
socket.close();
Log.d("ClientActivity", "C: Closed.");
} catch (Exception e) {
Log.e("ClientActivity", "C: Error", e);
connected = false;
}
}
}
}وهو مؤخوذ من هنا
مع تعديلات طفيفة
وفي جزء السيرفر - فقط اقوم بعرض الرسالة المستلمة
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
Thread thread = new Thread(new ThreadStart(Listen));
thread.IsBackground = true;
thread.Start();
}
public void Listen()
{
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
TcpListener tcpListener = new TcpListener(localAddr, 8000);
tcpListener.Start();
TcpClient tcpClient = tcpListener.AcceptTcpClient();
NetworkStream ns = tcpClient.GetStream();
BinaryReader w = new BinaryReader(ns);
string result =w.ReadString();
// StreamReader sr = new StreamReader(ns);
// string result = sr.ReadLine();
MessageBox.Show(result);
tcpClient.Close();
// sr.Close();
ns.Close();
tcpListener.Stop();
}لكن كما ذكرت - لا يحدث شيء عند التنفيذ - وايضا لا يظهر خطأ
اتمنى احد الاخوان يقدر يساعد في الموضوع
و جزاكم الله خيرا