السلام عليكم و رحمة الله و بركاته
كيف أستطيع أن أفتح ملف أو أن أكتب على ملف .. يكون هذا الملف موجود على سرفر على الإنترنت ..
كيف أصل إلى النت و برمجة برامج تتصل بالنت عن طريق لغة سي و سي++ ؟؟
و جزاكم الله خيراً
السلام عليكم و رحمة الله و بركاته
كيف أستطيع أن أفتح ملف أو أن أكتب على ملف .. يكون هذا الملف موجود على سرفر على الإنترنت ..
كيف أصل إلى النت و برمجة برامج تتصل بالنت عن طريق لغة سي و سي++ ؟؟
و جزاكم الله خيراً
اذا كنت تقصد التعامل بين التطبيقات , فانت ستتحدث عن (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;
}قم بتنفيذ الخادم , ثم جرب تنفيذ العميل , ثم عد مرة اخرى للخادم .
تستطيع ان تعدل على الاكواد السابقة وتغير من انواع الطلبات المرسلة وانواع السلوك المتبع من خلال الخادم عند استقبال اي طلب ومنها الكتابة بالملفات ...

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