PDA

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



arash ghafori
چهارشنبه 18 اردیبهشت 1392, 19:13 عصر
با سلام.
من یه برنامه ی سرور و یه برنامه سمت کلاینت دارم که فقط و فقط قراره به هم کانکت بشن.
از سمت کلاینت مشکلی نیست ولی سمت سرور No Connect رو چاپ میکنه . ( در واقع هم OK رو از سمت کلاینت چاپ میکنه ، و هم No Connect رو از سمت سرور ) !!!!

این کد سمت سرور :


const int ClientNumber = 2;
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint a = new IPEndPoint(IPAddress.Any, 4040);
s.Bind(a);
s.Listen(ClientNumber);
s.Accept();

if (s.Connected == true)
{
MessageBox.Show("Connected.");

}
else
{
MessageBox.Show("Not connected.");

}


این هم کد سمت کلاینت :


Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPHostEntry ip = new IPHostEntry();
ip = Dns.Resolve("127.0.0.1");
IPAddress ip1 = ip.AddressList[0];
IPEndPoint a = new IPEndPoint(ip1, 4040);
s.Connect(a);
if (s.Connected)
{
MessageBox.Show("OK");
}


ممنون میشم کمکم کنید.

FastCode
چهارشنبه 18 اردیبهشت 1392, 20:47 عصر
با سلام.
من یه برنامه ی سرور و یه برنامه سمت کلاینت دارم که فقط و فقط قراره به هم کانکت بشن.
از سمت کلاینت مشکلی نیست ولی سمت سرور No Connect رو چاپ میکنه . ( در واقع هم OK رو از سمت کلاینت چاپ میکنه ، و هم No Connect رو از سمت سرور ) !!!!

این کد سمت سرور :


const int ClientNumber = 2;
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint a = new IPEndPoint(IPAddress.Any, 4040);
s.Bind(a);
s.Listen(ClientNumber);
s.Accept();

if (s.Connected == true)
{
MessageBox.Show("Connected.");

}
else
{
MessageBox.Show("Not connected.");

}


این هم کد سمت کلاینت :


Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPHostEntry ip = new IPHostEntry();
ip = Dns.Resolve("127.0.0.1");
IPAddress ip1 = ip.AddressList[0];
IPEndPoint a = new IPEndPoint(ip1, 4040);
s.Connect(a);
if (s.Connected)
{
MessageBox.Show("OK");
}


ممنون میشم کمکم کنید.
Accept وقتی که یک کلاینت وصل میشه یک Socket برمیگردونه.باید Connect بودن اون Socket رو تست کنید.خود Listener همیشه Disconnect هست.

arash ghafori
چهارشنبه 18 اردیبهشت 1392, 22:33 عصر
ممنون از پاسختون.
اما S شیئ از کلاس سوکت هست !! منظورتون اینه که باید بعد از متد S.Bind دستور If رو بزارم و بعد Listen و Accept بنویسم ؟
پس ینی الان کدها مشکلی ندارن ؟ کد درسته ؟

FastCode
چهارشنبه 18 اردیبهشت 1392, 22:38 عصر
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.accept.aspx