امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 1
  • 1
  • 2
  • 3
  • 4
  • 5
راهنمايي براي نوشتن برنامه تحت پروتكل HTTP
نویسنده پیام
one hacker alone آفلاین
كاربر تک ستاره
*

ارسال‌ها: 46
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 1
( 7 تشکر در 5 ارسال )
ارسال: #1
راهنمايي براي نوشتن برنامه تحت پروتكل HTTP
با ياد خدا
سلام دوستان
من با برنامه نويسي شبكه اشنا هستم و برنامه هاي ساده رو هم نوشتم
الان ميخوام با استفاده از متد put پروتكل HTTP فايلي رو روي سايتي اپلود كنم متاسفانه بعد از جستجو به نتيجه مطلوبي نرسيدم و تنها چيزي كه دستگير شد اينه كه از include http.h بايد استفاده كنم. همين
دوستان يك كد ساده كه بتونم با اون استفاده از متد هاي اين پروتكل رو ياد بگيرم يا يك مقاله يا لينك انگليسي يا فارسي مهم نيست فقط ساده و به اصطلاح step by step باشه ممنون ميشم راهنمايي كنيد.
۲۰-بهمن-۱۳۹۰, ۱۸:۱۷:۰۴
ارسال‌ها
پاسخ
one hacker alone آفلاین
كاربر تک ستاره
*

ارسال‌ها: 46
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 1
( 7 تشکر در 5 ارسال )
ارسال: #2
RE: راهنمايي براي نوشتن برنامه تحت پروتكل HTTP
كسي نيست در اين زمينه راهنمايي كنه؟
۲۱-بهمن-۱۳۹۰, ۲۰:۱۴:۱۶
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: راهنمايي براي نوشتن برنامه تحت پروتكل HTTP
کسی هست ولی گوگل فیلتره :d
(اون هدر http.h جز هدرهای استاندارد هست یا یکی واسه خودش نوشته؟)
کد:
#include <iostream>
#include <winsock2.h>
#include <string>
using namespace std;

//link libwsock32.a

unsigned long WinsockStart()
{
     WSADATA wsa;
     unsigned long ulong;
     struct hostent *host;

     if(WSAStartup(MAKEWORD(2,2), &wsa) < 0)
     {
          cout << "Error WinsockStart()" << endl;
          WSACleanup();
          return 1;
          }

     if((host=gethostbyname("www.example.com"))<0)
     {
          cout << "Fehler gethostbyname()" << endl;
          WSACleanup();
          return 2;
          }

     ulong = *(unsigned long*) host->h_addr;

     return ulong;
      }

     void error_exit(string text)
     {
     cout << text;
     WSACleanup();
     exit(EXIT_FAILURE);
      }



int main()
{
SOCKET sock;
struct sockaddr_in addr;
unsigned long win=0;
int con = 0, gr=0, send_r=0, rec=0;
char header[2048], puffer[2018];
string to_send="hello world";
string name="test99.txt";

win=WinsockStart();
   if(win==1||win==2)
      error_exit("Error WinsockStart()");

addr.sin_family=AF_INET;
addr.sin_port=htons(80);
addr.sin_addr.s_addr = win;

sock = socket(AF_INET, SOCK_STREAM, 0);
   if(sock<0)
      error_exit("Error socket()");

gr = (to_send.size()+name.size()+287);

sprintf(header, "POST /upload.php HTTP/1.1\r\n");
sprintf(header, "%sHost: www.example.com\r\n", header);
sprintf(header, "%sConnection: Keep-Alive\r\n", header);
sprintf(header, "%sContent-Type: multipart/form-data; boundary=---------------------------90721038027008\r\n", header);
sprintf(header, "%sContent-Length: %d\r\n", header, gr);
sprintf(header, "%s\r\n", header);
sprintf(header, "%s-----------------------------90721038027008\r\n", header);
sprintf(header, "%sContent-Disposition: form-data; name=\"upfile\"; filename=\"%s\"\r\n", header, name.c_str());
sprintf(header, "%sContent-Type: text/plain\r\n", header);
sprintf(header, "%s\r\n", header);
sprintf(header, "%s%s\r\n", header, to_send.c_str());
sprintf(header, "%s-----------------------------90721038027008\r\n", header);
sprintf(header, "%sContent-Disposition: form-data; name=\"post\"\r\n", header);
sprintf(header, "%s\r\n", header);
sprintf(header, "%supload\r\n\r\n", header);
sprintf(header, "%s-----------------------------90721038027008--\r\n\r\n\0", header);      

con = connect(sock, (SOCKADDR*)&addr, sizeof(addr));
   if(con < 0)
      error_exit("Error connect()");

if(send_r=send(sock, header, strlen(header), 0)<0)
      error_exit("Error send()");

while(rec=recv(sock, puffer, 2048, 0))
{
  if(rec==0)
    error_exit("Server quit");

printf("%s", puffer);
}              

closesocket(sock);
WSACleanup();
return EXIT_SUCCESS;
}
این کد با استفاده از توابع api این کارو انجام میده

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۲-بهمن-۱۳۹۰, ۱۰:۵۱:۲۰
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #4
RE: راهنمايي براي نوشتن برنامه تحت پروتكل HTTP
شما اول می تونی کانکت شی دیتا بفرستی؟
اگه این تیکه رو انجام دادی بقیه فقط متن که ارسال می شه (البته get , post رو کار کردم)
اینا رو ببین
http://www.w3.org/Protocols/rfc2616/rfc2616.html
http://www.w3.org/Protocols

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۲-بهمن-۱۳۹۰, ۱۱:۵۹:۰۳
وب سایت ارسال‌ها
پاسخ
one hacker alone آفلاین
كاربر تک ستاره
*

ارسال‌ها: 46
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 1
( 7 تشکر در 5 ارسال )
ارسال: #5
RE: راهنمايي براي نوشتن برنامه تحت پروتكل HTTP
ممنون از راهنمااييتون ببينيد من اول فكر كردم http.h استاندارد هست اما ظاهرا اين طور نيست من به كتابخانه هاي ديگه هم برخورد كردم مثل HTTP.h -------- curl-------httpext.h و....

چيزي كه براي من سوال هست اينه كه آيا ميشه با همون توابع اصلي شبكه مثل Socket() , Connect , bild(),..... كارمون رو راه بندازيم ؟ يعني اين توابع ميشه و كتابخانه هايي كه در بالا اشاره كردم براي راحتي كار هست. ايا اينجوريه

يا توابع بالا مكمل توابع اصلي شبكه هست؟ من اين براي سواله كه اخرش توابع شبكه كه قرار بود سرتا پاي TCP/IP رو پوشش بده كو؟؟؟؟


نخير من اتصال هم برقرار نكردم چون نميدونم از كدوم تابع استفاده كنم براي اين كار قبلا پورت اسكنر هاي ساده و ... نوشتم تو شبكه اما براي گنگ هست استفاده از پروتكل هاي ديگه TCP مانند همين متد put پروتكل http
لطفا اگه كسي ميتونه كمك كنه دريغ نكنه چون خيلي قاطي كردم
۲۲-بهمن-۱۳۹۰, ۱۷:۵۸:۲۶
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] نوشتن درایور برای FileSystem Monitor برای همه نسخه های ویندوز nImaarek 1 1,605 ۲۴-خرداد-۱۳۹۷, ۲۰:۳۴:۰۰
آخرین ارسال: NO DONGLE
Exclamation درخواست كد براي ارسال به ايميل mortezadevil 1 2,496 ۱۴-تير-۱۳۹۵, ۱۲:۱۱:۴۰
آخرین ارسال: lord_viper
  [آموزشی] فیلم فارسی آموزش نوشتن File Locker ساده در ++C one hacker alone 0 2,323 ۰۵-اسفند-۱۳۹۴, ۰۸:۰۷:۰۰
آخرین ارسال: one hacker alone
  [آموزشی] آموزش نوشتن File Locker ساده در ++C one hacker alone 0 2,151 ۲۵-بهمن-۱۳۹۴, ۰۵:۴۲:۲۱
آخرین ارسال: one hacker alone
  [سوال] کمک برا نوشتن برنامه hadikh73 13 8,836 ۱۹-اردیبهشت-۱۳۹۴, ۱۰:۱۲:۲۲
آخرین ارسال: *بنده خدا*
  [فوری] نوشتن درایور برای سخت افزار saeedsepn 10 7,297 ۱۳-دى-۱۳۹۳, ۱۷:۰۹:۰۵
آخرین ارسال: saeedsepn
  کمک برای شروع به نوشتن درایور salehjg 5 8,057 ۲۸-فروردین-۱۳۹۳, ۰۳:۲۷:۰۲
آخرین ارسال: salehjg
  کمک در نوشتن ارایه دو بعدی hut 0 2,144 ۲۲-آذر-۱۳۹۲, ۱۷:۱۵:۰۰
آخرین ارسال: hut
  خواندن و نوشتن aleas 1 3,061 ۰۶-اسفند-۱۳۹۱, ۲۲:۰۴:۵۵
آخرین ارسال: Ghoghnus
Cool [سوال] Thumbs down HELP...ترو خدا تو نوشتن این برنامه آسون کمکم کنین ... :-d alidodar1 7 7,020 ۲۶-مرداد-۱۳۹۱, ۲۳:۳۶:۱۱
آخرین ارسال: invincible

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS