الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية استخدام Socket مع Proxy

مغلق
بدأه b.m.s في 2 نوفمبر 2006 · 6 رد · 1,411 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أعمل على برنامج Download Manager بلغة الجافا

والآن أريد إستخدام ال Socket مع البرنامج لأني أريد إرسال header حقتي في التواصل مع server

والسؤال الآن كيف يمكنني استخدام الproxy ؟ لأن الملف راح يكون خلف proxy

حاولت إستخدام

System.setProperty("http.proxyHost","MYPROXY");
System.setPropery("http.proxyPort", "MYPORT");

أنا أعرف كيف استخدم الsocket لكن ملا أعرفه هو استخدامها مع proxy (h)

فأفتونا مأجورين *-)

ملاحظة :- بحثت في Google حتى ما بقى صفحة إلا دخلتها وما ليقت جواب شافي

#2

السلام عليكم

http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html

Socket
public Socket(Proxy proxy)Creates an unconnected socket, specifying the type of proxy, if any, that should be used regardless of any other settings. 
If there is a security manager, its checkConnect method is called with the proxy host address and port number as its arguments. This could result in a SecurityException. 

Examples: 

Socket s = new Socket(Proxy.NO_PROXY); will create a plain socket ignoring any other proxy configuration. 
Socket s = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("socks.mydom.com", 1080))); will create a socket connecting through the specified SOCKS proxy server. 

Parameters:
proxy - a Proxy object specifying what kind of proxying should be used. 
Throws: 
IllegalArgumentException - if the proxy is of an invalid type or null. 
SecurityException - if a security manager is present and permission to connect to the proxy is denied.
Since: 
1.5 
See Also:
ProxySelector, Proxy

هل هذا يفي بما تريد ؟

#3

حياك الله عيسى

لا أظن إنه يفي الغرض . أنا دخلت الصفحة هذه أو بالأحرى هذا الmanual موجود عندي لكن مو موجود شئ تفصيلي

مثل الproxy اللي عندي مثلاً إسمه proxy.easy.net.sa ما أدري من أي الأنواع هو

عندما أضع نوعه في البرنامج من نوع HTTP يرد على طول ويعطيني رسالة خطأ أما إذا وضعته من نوع SOCK يشتغل معي

لكن عند استخدام connect يظهر لي رسالة malformed أو شئ من هذا القبيل . عموما كتبت كود بسيط يختبر الإتصال عبر ال proxy

فأرجو إن كان فيه ملاحظات عليه فأرجو التكرم بإدلائها :P

			long File_Size = 0;

			System.setProperty("http.proxyHost","proxy.easy.net.sa");
			System.setProperty("http.proxyPort","80");

			// TODO code application logic here
			Socket sock1 = new Socket(new java.net.Proxy(java.net.Proxy.Type.SOCKS,new java.net.InetSocketAddress("proxy.easy.net.sa",80)));
			System.out.println("define socket");
			sock1.connect(new java.net.InetSocketAddress("www.google.com",80));
			System.out.println("connect socket");
			java.io.FileOutputStream file1 = new java.io.FileOutputStream(new File("h1"));
			byte [] check = ("HEAD / HTTP/1.0\r\n" +
							"Host: www.google.com \r\n" +
							"User-Agent: Bms 1.0\r\n" +
							"\r\n").getBytes("US-ASCII");
			System.out.println("define header");
			BufferedInputStream  in1 = new BufferedInputStream(sock1.getInputStream());
			byte [] buffer1 = new byte[2 * 1024];
			OutputStream out1 = sock1.getOutputStream();
			System.out.println("get outputstream socket");

//		  Determine file size
			out1.write(check);
			System.out.println("send header");
			int j = in1.read(buffer1);
			System.out.println("recive header");
			String [] headers = ToString(buffer1,j).toString().split("\n");
			File_Size = Length(headers);
			JOptionPane.showMessageDialog(null,"file = " + File_Size);
//		  finish job

هذا الكود بشكل مبسط ولاحظ إنه عند استخدام دالة connect بعدها تظهر Exception

وشاكر لك مساعدتك B)

تم تعديل هذه المشاركة بواسطة b.m.s في 4 نوفمبر 2006 في 23:36

#4

مااعرف حقيقة هذه المشكلات

اتمنى المساعده من بقية الاعضاء

#5
{عيسى} كتب:
مااعرف حقيقة هذه المشكلات

اتمنى المساعده من بقية الاعضاء

من قال لا أعلم فقد أفتى ;)

وشكراً لك

#6
b.m.s كتب:
من قال لا أعلم فقد أفتى ;)

وشكراً لك

العفو اخي

ان شاء الله نعلم بكره في وقت مانكون صاحين وفاتحين موقع قوقل وياهو وصن :lol:

هذا الموضوع مغلق.

مواضيع مشابهة