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

كيفية الوصول إلى ملف على النت ؟؟

بدأه omar_cplusplus في 27 نوفمبر 2008 · 2 رد · 501 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

كيف أستطيع أن أفتح ملف أو أن أكتب على ملف .. يكون هذا الملف موجود على سرفر على الإنترنت ..

كيف أصل إلى النت و برمجة برامج تتصل بالنت عن طريق لغة سي و سي++ ؟؟

و جزاكم الله خيراً

#2

اذا كنت تقصد التعامل بين التطبيقات , فانت ستتحدث عن (server and clients ) , بحيث يرسل العميل الطلبات إلى السيرفر , ويقوم الاخير بدوره في استقبال الطلبات , وتحليلها واداء الوظائف بناء على نوع الطلب .

على سبيل المثال , للقيام ببرامج مماثله , قم بمشاهدة إلية عمل هذا التطبيق :

#include <winsock.h>
#pragma comment( lib,"ws2_32.lib" )

int main()
{
	// Initiate use of the WinSock DLL.

	WSADATA wsaData = { 0 };
	WSAStartup( MAKEWORD( 2, 2 ), &wsaData );

	// Create a socket and store the handle to it.
	SOCKET hSocket = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );

	// Set the protocol, port, and address information of the server.
	sockaddr_in serverAddr = { 0 };
	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons( 2345 );
	serverAddr.sin_addr.s_addr = inet_addr( "127.0.0.1" );

	// Send a message to the server
	char buffer[] = "hello";
	sendto( hSocket, buffer, sizeof( buffer ) + 1, 0, reinterpret_cast<sockaddr *>( &serverAddr ), sizeof( serverAddr ) );

	// Cleanup.
	WSACleanup();

	return 0;
}

الان جرب كتابة هذا التطبيق والذي سيمثل لنا الخادم , وسيقوم باستقبال الطلبات من العميل (hello) وطباعتها :

#include <iostream>
#include <winsock.h>
#pragma comment( lib,"ws2_32.lib" )

int main()
{
	// Initiate use of the WinSock DLL.
	WSADATA wsaData = { 0 };
	WSAStartup( MAKEWORD( 2, 2 ), &wsaData );

	// Create a socket and store the handle to it.
	SOCKET hSocket = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );

	// Set the protocol, port, and address information.
	sockaddr_in serverAddr = { 0 };
	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons( 2345 );
	serverAddr.sin_addr.s_addr = INADDR_ANY;

	// Bind the socket.
	bind( hSocket, reinterpret_cast<sockaddr *>( &serverAddr ), sizeof( serverAddr ) );

	// Receive a message into the buffer.
	char buffer[1024] = { 0 };
	recvfrom( hSocket, buffer, sizeof( buffer ), 0, 0, 0 );

	// Print the message in the buffer.
	std::cout << buffer << std::endl;

	// Cleanup.
	closesocket( hSocket );
	WSACleanup();

	return 0;
}

قم بتنفيذ الخادم , ثم جرب تنفيذ العميل , ثم عد مرة اخرى للخادم .

تستطيع ان تعدل على الاكواد السابقة وتغير من انواع الطلبات المرسلة وانواع السلوك المتبع من خلال الخادم عند استقبال اي طلب ومنها الكتابة بالملفات ...

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#3

جزاك الله خيراً ..

و طبعاً أحتاج إلى أن يكون برنامج الخادم مفتوح على جهاز الخادم .. لكن ما العمل إذا كان هناك ملف موجود على خادم و أريد الكتابة أو القراءة من هذا الملف مباشرةً دون أن يكون هناك خادم يرسل لي بيانات الملف ؟؟

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