Visual C++. Работа через сокеты, помогите разобраться в программе, В двух словах, это консольное приложение для платформы xp x86. Суть: б |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Visual C++. Работа через сокеты, помогите разобраться в программе, В двух словах, это консольное приложение для платформы xp x86. Суть: б |
GrabbeR |
3.11.2011 13:11
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Суть данного консольного приложения: банить юзверей правами модера (определение через куки)
Ошибка в строке if(SOCKET_ERROR==send(s,request,sizeof(request),0)) error C2664: send: невозможно преобразовать параметр 2 из "std::string" в "const char *" как его преобразовать? не могу вдуплить _____________________________________ #include <stdafx.h> #include <iostream> #include <winsock2.h> #include <string> #include <conio.h> int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "Russian"); using namespace std; //составление запроса int user_id; bool end = true; while(end){ string request = "User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.52 Host: connect.ua Accept-Language: ru-RU,ru;q=0.9,en;q=0.8 Accept-Encoding: gzip, deflate Referer: http://connect.ua/user-"; string banned = ""; cout<<"Введите номер юзера\n"; cin>>user_id; cout<<"Введите причину бана\n"; cin>>banned; request += user_id; request += " Cookie: __gads=ID=12c4600e972d2dbc:T=1317417221:S=ALNI_Mbk3mjIAgEVbwderkj6M7gQtjwgWQ; snimiSlivki=1; hide_speakup2=1; hide_richag2=1; health=1; site_id=171; english_ad=1; PHPSESSID=7b7793a69768f2772ddd0f1835a66b50; jjot_sort=1; people-filter-form[age_start]=18; people-filter-form[age_end]=23; people-filter-form[sex]=f; people-filter-form[city_id]=5001; v=ok; holder=1; b=b; __utma=57213173.709094120.1320058983.1320171944.1320178906.12; __utmb=57213173.59.9.1320180543308; __utmc=57213173; __utmz=57213173.1320058983.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmv=57213173.|1=authenticated=yes=1,2=gender=m=1,3=age=19=1,4=city=Kiev=1,5=s ignup=19.09.2008=1; credentials=454562%7C156c4d4ebf8ae5f8315b76a457d4342c Content-Length: 121 Content-Type: application/x-www-form-urlencoded X-Requested-With: XMLHttpRequest Accept: application/json, text/javascript, */* AJAX: 1 Content-Transfer-Encoding: binary"; SOCKET s; if(INVALID_SOCKET==(s=socket(AF_INET,SOCK_STREAM,0))) { int error=WSAGetLastError();cout<<"1"; } hostent *hn; if (NULL==(hn=gethostbyname("connect.ua"))) { cout<<"2"; cin.get(); } sockaddr_in addr; addr.sin_family=AF_INET; addr.sin_addr.S_un.S_addr=*(DWORD*)hn->h_addr_list[0]; addr.sin_port=htons(80); if(SOCKET_ERROR==(connect(s,(sockaddr*)&addr,sizeof(addr)))) { int error=WSAGetLastError(); cout<<"3"; cin.get(); } if(SOCKET_ERROR==send(s,request,sizeof(request),0)) { int error=WSAGetLastError(); cout<<"4"; cin.get(); }; Sleep(1); closesocket(s); return 0; } cout<<"Забанен\n\r"; cout<<"\n"; _getch(); } } Сообщение отредактировано: GrabbeR - 3.11.2011 13:14 -------------------- Чем больше я узнаю, тем больше понимаю, что ничего не знаю
|
IUnknown |
3.11.2011 13:26
Сообщение
#2
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
if(SOCKET_ERROR==send(s, request.c_str(), request.length(), 0))должно преобразовать. Обрати внимание, пользоваться sizeof(std::string) не надо, я тебе и так скажу, получишь 4. У строки есть длина, вот ее и используй... |
Текстовая версия | 24.09.2024 13:43 |