PDA

View Full Version : حرفه ای: تنظیمات Proxy در Socket



MShirzadi
پنج شنبه 01 مهر 1389, 11:54 صبح
سلام،
من یه برنامه نوشتم که قراره از یک سری کلاینت ها به روش Tcp به یک سروری وصل شوند و با آن انتقال اطلاعات کنند.
مشکلی که بهش بر خوردم اینه که اگه این برنامه بخواد از یک Proxy برای وصل شدن به سرور استفاده کنه نمیتونه ارتباط Socket رو بر قرار کنه (مشکل Authentication).
کسی ایده ایی داره ؟
قابل ذکر هست که من با سرور اطلاعات باینری می فرستم.
ممنون از اساتید

fjm11100
پنج شنبه 01 مهر 1389, 12:05 عصر
listeningSocket = new AuthenticatingSocket(new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp), GetUserCredentialsFromSomeWhere());
listeningSocket.Bind(localEnd);
listeningSocket.Listen(1);
Socket dataSockTemp = listeningSocket.Accept(); // at this point, dataSockTemp is a connected Socket (shown via a breakboint)
dataSocket = dataSockTemp as ProxySocket;
listeningSocket.Close();

MShirzadi
پنج شنبه 01 مهر 1389, 12:12 عصر
ممنون از توجهت.
من کلاس AuthenticatingSocket رو پیدا نکردم.
این چی هست؟

fjm11100
پنج شنبه 01 مهر 1389, 12:20 عصر
شرمنده تیکه اولشو یادم رفت
public class AuthenticatedSocket : Socket
{
private Socket socket;
private IUser user;

public AuthenticatedSocket(Socket socket, IUser user)
{
this.socket = socket;
this.user = user;
}

public override Socket Accept()
{
if(user.IsAuthenticated())
return new AuthenticatedSocket(socket.Accept, user);
return new NullSocket();
}

//override other members as well which simply reference this.socket

private class NullSocket : Socket
{
public override void Close ()
{
}
}
}

MShirzadi
پنج شنبه 01 مهر 1389, 13:12 عصر
دوست من یه سوال :
خودت این کد رو تست کردی ؟
اگه تست کردی کلاس کاملش رو بزار اینجا.

MShirzadi
شنبه 15 آبان 1389, 22:53 عصر
از programmer های حرفه ای، تا الان این مشکل براتون پیش نیومده؟