PDA

View Full Version : سوال: مشکل در برگشت پیام در سوکت پروگرمینگ



water_lily_2012
چهارشنبه 29 آبان 1392, 20:42 عصر
سلام
کدی می خوام که بتونه چندین کلاینت به صورت همزمان به سرور متصل باشه و داده بفرسته و بعد با توجه به داده ها پاسخ مناسب را بدهد. قسمت اول را نوشتم و تو قسمت دوم که پاسخ بده را نه.

این کد سرور هست.

public class socket
{
static TcpListener tcpListener=new TcpListener(10);
//__________________________________________________ __________________________________________________ ___________________________ Listeners
static void Listeners(Socket socketForClient)
{
if (socketForClient.Connected)
{
log.WriteTSL("Client: now connected to server.",log.Handle.None);
NetworkStream networkStream=new NetworkStream(socketForClient);
System.IO.StreamWriter streamWriter=new System.IO.StreamWriter(networkStream);
System.IO.StreamReader streamReader=new System.IO.StreamReader(networkStream);
while (true)
{
string commandFromClient=streamReader.ReadLine();
log.WriteTSL("Message recieved by client:"+commandFromClient,log.Handle.None);
switch(commandFromClient)
{
// Run command that receive from client
case "":
break;
}
if (commandFromClient=="exit")
{
break;
}
}
streamReader.Close();
networkStream.Close();
streamWriter.Close();
socketForClient.Close();
}
}
//__________________________________________________ __________________________________________________ ______________________ SoketMonitoring
public static void SoketMonitoring()
{
tcpListener.Start();
log.WriteTSL("Socket monitoring started",log.Handle.None);
while (true)
{
Socket socketForClient=tcpListener.AcceptSocket();
Thread newThread=new Thread(()=>Listeners(socketForClient));
newThread.Start();
Thread.Sleep(100);
}
}
}

برنامه سمت کلاینت:

public class socket
{
//__________________________________________________ __________________________________________________ ____________________ SendDataToALF
public static void SendDataToALF()
{
TcpClient socketForServer;
try
{
socketForServer=new TcpClient("localHost",10);
}
catch
{
log.WriteTSL("Failed to connect to ALF",log.Handle.Terminate);
return;
}
NetworkStream networkStream=socketForServer.GetStream();
System.IO.StreamReader streamReader=new System.IO.StreamReader(networkStream);
System.IO.StreamWriter streamWriter=new System.IO.StreamWriter(networkStream);
log.WriteTSL("Connected to ALF on port No:10",log.Handle.None);
try
{
string str="ComLink";
streamWriter.WriteLine(str);
streamWriter.Flush();
}
catch
{
log.WriteTSL("Exception reading from ALF",log.Handle.None);
}
streamWriter.WriteLine("exit");
streamWriter.Flush();
networkStream.Close();
}
}

خب الان چند تا کلاینت به سرور متصل میشه و می توانند پیام بفرستند ولی برگشت پیام ندارم.
:متفکر:
لطفا کسی بلده چند خط راهنمایی کنه.
تشکر