سلام.
تو یه پروژه سوکت پروگرمینگ، میخوام بین یک برنامه کلاینت و یک سرور ارتباط برقرار کنم و شبیه یک برنامه چت ساده بینشون متن رد و بدل کنم. هر دو برنامه روی یه سیستم اجرا میشه و آیپی 127.0.0.1 برای سرور تنطیم میشه. متن چیزی که نوشتم ولی کار نمیکنه اینجوریه:
برنامه باید تو محیط windows form application نوشته بشه. اگه کسی میتونه کمک کنه دریغ نکنه خواهشا.
هردوتا سولوشن را هم اینجا آپلود کردم، لطف کنید ببینید و مشکلشا بهم بگید. صحبت 2 نمره مستقیم پایان ترمه.
یادم رفت بگم با #C باید بنویسمش.
تو یه پروژه سوکت پروگرمینگ، میخوام بین یک برنامه کلاینت و یک سرور ارتباط برقرار کنم و شبیه یک برنامه چت ساده بینشون متن رد و بدل کنم. هر دو برنامه روی یه سیستم اجرا میشه و آیپی 127.0.0.1 برای سرور تنطیم میشه. متن چیزی که نوشتم ولی کار نمیکنه اینجوریه:
SERVER
System.Net.Sockets.TcpClient client = null;
private void button1_Click(object sender, EventArgs e)
{
if (ServerPort.Text.Trim() != "")
{
int SPort = Convert.ToInt32(ServerPort.Text);
System.Net.Sockets.TcpListener listener = new System.Net.Sockets.TcpListener(SPort);
listener.Start();
client = listener.AcceptTcpClient();
MessageBox.Show("The Client Connected!");
//byte[] hi = System.Text.Encoding.UTF8.GetBytes("Hello");
//client.Client.Send(hi);
//while (true)
//{
// client.Client.Send(hi);
// while (client.Available == 0)
// continue;
// byte[] rcvdata = new byte[client.Available];
// client.Client.Receive(rcvdata);
// string rcvString = System.Text.Encoding.UTF8.GetString(rcvdata);
// ReceiveComment.Text = rcvString;
//}
}
}
private void button2_Click(object sender, EventArgs e)
{
byte[] SComment = System.Text.Encoding.UTF8.GetBytes(SendComment.Text);
client.Client.Send(SComment);
SendComment.Clear();
}
CLIENT
System.Net.Sockets.TcpClient client = null;
private void button1_Click(object sender, EventArgs e)
{
if (LocalPortNumber.Text.Trim() != "" && ServerPort.Text.Trim() != "" && ServerIP.Text.Trim() != "")
{
int LPNumber = Convert.ToInt32(LocalPortNumber.Text);
int SPort = Convert.ToInt32(ServerPort.Text);
System.Net.IPEndPoint ipe = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ServerIP.Text), LPNumber);
client = new System.Net.Sockets.TcpClient(ipe);
client.Connect(System.Net.Dns.GetHostName(), SPort);
//while (true)
//{
// byte[] rcvData = new byte[client.Available];
// client.Client.Receive(rcvData);
// string rcvString = System.Text.Encoding.UTF8.GetString(rcvData);
// TBReceiveComment.Text = rcvString;
// byte[] SendCmt = System.Text.Encoding.UTF8.GetBytes("hello");
// client.Client.Send(SendCmt);
//}
}
}
private void button2_Click(object sender, EventArgs e)
{
byte[] SendCmt = System.Text.Encoding.UTF8.GetBytes(TBSendComment.Text);
client.Client.Send(SendCmt);
TBSendComment.Clear();
}
System.Net.Sockets.TcpClient client = null;
private void button1_Click(object sender, EventArgs e)
{
if (ServerPort.Text.Trim() != "")
{
int SPort = Convert.ToInt32(ServerPort.Text);
System.Net.Sockets.TcpListener listener = new System.Net.Sockets.TcpListener(SPort);
listener.Start();
client = listener.AcceptTcpClient();
MessageBox.Show("The Client Connected!");
//byte[] hi = System.Text.Encoding.UTF8.GetBytes("Hello");
//client.Client.Send(hi);
//while (true)
//{
// client.Client.Send(hi);
// while (client.Available == 0)
// continue;
// byte[] rcvdata = new byte[client.Available];
// client.Client.Receive(rcvdata);
// string rcvString = System.Text.Encoding.UTF8.GetString(rcvdata);
// ReceiveComment.Text = rcvString;
//}
}
}
private void button2_Click(object sender, EventArgs e)
{
byte[] SComment = System.Text.Encoding.UTF8.GetBytes(SendComment.Text);
client.Client.Send(SComment);
SendComment.Clear();
}
CLIENT
System.Net.Sockets.TcpClient client = null;
private void button1_Click(object sender, EventArgs e)
{
if (LocalPortNumber.Text.Trim() != "" && ServerPort.Text.Trim() != "" && ServerIP.Text.Trim() != "")
{
int LPNumber = Convert.ToInt32(LocalPortNumber.Text);
int SPort = Convert.ToInt32(ServerPort.Text);
System.Net.IPEndPoint ipe = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ServerIP.Text), LPNumber);
client = new System.Net.Sockets.TcpClient(ipe);
client.Connect(System.Net.Dns.GetHostName(), SPort);
//while (true)
//{
// byte[] rcvData = new byte[client.Available];
// client.Client.Receive(rcvData);
// string rcvString = System.Text.Encoding.UTF8.GetString(rcvData);
// TBReceiveComment.Text = rcvString;
// byte[] SendCmt = System.Text.Encoding.UTF8.GetBytes("hello");
// client.Client.Send(SendCmt);
//}
}
}
private void button2_Click(object sender, EventArgs e)
{
byte[] SendCmt = System.Text.Encoding.UTF8.GetBytes(TBSendComment.Text);
client.Client.Send(SendCmt);
TBSendComment.Clear();
}
برنامه باید تو محیط windows form application نوشته بشه. اگه کسی میتونه کمک کنه دریغ نکنه خواهشا.
هردوتا سولوشن را هم اینجا آپلود کردم، لطف کنید ببینید و مشکلشا بهم بگید. صحبت 2 نمره مستقیم پایان ترمه.
یادم رفت بگم با #C باید بنویسمش.
Last edited: