roshanak_g
پنج شنبه 15 مرداد 1388, 15:05 عصر
من یه برنامه می نویسم که اطلاعات باید به صورت دو طرفه ارسال و دریافت بشه ،منتهی برنامه ای که الان نوشتم به صورت یکطرف است یعنی فقط سرور به اطلاعات پورت گوش میکنه و کلاینت اطلاعات رو ارسال می کنه ،مشکلی که دارم این که این کد برای ارسال اطلاعات از طرف سرور به کلاینت و دریافت اطلاعات از طرف کلاینت عمل نمیکنه،اگه بخوام این ارسال و دریافت رو دو طرفه کنم چی کار باید بکنم؟
البته کدی که نوشتم رو می فرستم
با نهایت تشکر
کد سمت سرور
static class TcpServer
{
static private int Port = 13000;
();
1";
static TcpListener L = new TcpListener(IPAddress.Any, Port);
public static void Run()
{
L.Start();
while (true)
{
Application.DoEvents();
try
{
TcpClient C = L.AcceptTcpClient();
NetworkStream S = C.GetStream();
byte[] GetByte = new byte[1000];
int i = S.Read(GetByte, 0, GetByte.Length);
string GMsg = Encoding.ASCII.GetString(GetByte, 0, i);
string SMsg = "Ok";
byte[] SendByte = Encoding.ASCII.GetBytes(SMsg);
S.Write(SendByte, 0, SendByte.Length);
S.Close();
C.Close();
}
catch { }
}
}
}
کد کلاینت
public class ClientTcp
{
private int Port = 13000;
private string IP = "127.0.0.1"; //"172.23.22.107";
public void Send(string Msg)
{
if (Msg.Trim() == "") return;
Application.DoEvents();
TcpClient C = new TcpClient();
C.Connect(IP, Port);
NetworkStream S = C.GetStream();
byte[] SendByte = Encoding.ASCII.GetBytes(Msg);
S.Write(SendByte, 0, SendByte.Length);
// this.listBox1.Items.Add("Send : " + Msg);
byte[] GetByte = new byte[1000];
int i = S.Read(GetByte, 0, GetByte.Length);
string GMsg = Encoding.ASCII.GetString(GetByte, 0, i);
// this.listBox1.Items.Add("Get : " + GMsg);
S.Close();
C.Close();
}
}
البته کدی که نوشتم رو می فرستم
با نهایت تشکر
کد سمت سرور
static class TcpServer
{
static private int Port = 13000;
();
1";
static TcpListener L = new TcpListener(IPAddress.Any, Port);
public static void Run()
{
L.Start();
while (true)
{
Application.DoEvents();
try
{
TcpClient C = L.AcceptTcpClient();
NetworkStream S = C.GetStream();
byte[] GetByte = new byte[1000];
int i = S.Read(GetByte, 0, GetByte.Length);
string GMsg = Encoding.ASCII.GetString(GetByte, 0, i);
string SMsg = "Ok";
byte[] SendByte = Encoding.ASCII.GetBytes(SMsg);
S.Write(SendByte, 0, SendByte.Length);
S.Close();
C.Close();
}
catch { }
}
}
}
کد کلاینت
public class ClientTcp
{
private int Port = 13000;
private string IP = "127.0.0.1"; //"172.23.22.107";
public void Send(string Msg)
{
if (Msg.Trim() == "") return;
Application.DoEvents();
TcpClient C = new TcpClient();
C.Connect(IP, Port);
NetworkStream S = C.GetStream();
byte[] SendByte = Encoding.ASCII.GetBytes(Msg);
S.Write(SendByte, 0, SendByte.Length);
// this.listBox1.Items.Add("Send : " + Msg);
byte[] GetByte = new byte[1000];
int i = S.Read(GetByte, 0, GetByte.Length);
string GMsg = Encoding.ASCII.GetString(GetByte, 0, i);
// this.listBox1.Items.Add("Get : " + GMsg);
S.Close();
C.Close();
}
}