ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

20.02.2009, 13:13
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
переделал, просто искал, где она определена,
вобщем, #include <sys/utsname.h>
Еще раз спасибо 
Последний раз редактировалось ss88; 20.02.2009 в 13:15..
|
|
|

20.02.2009, 13:19
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Сообщение от _nic
Подскажите по этому коду, почему невыводится ип подконектившегося клиента?
Код:
struct datas
{
SOCKET ss;
SOCKADDR_IN sadr;
};
DWORD WINAPI twins(LPVOID lParam)
{
datas *params=(datas*)lParam;
SOCKET s;s=params->ss;
char *buf=new char[1024];
for(;;)
{
recv(s,buf,1024,0);
Sleep(500);
send(s,buf,strlen(buf),0);
if(strcmp(buf,"exit")==0){break;}
memset(buf,NULL,strlen(buf));
}
delete []buf;
}
int main()
{
DWORD id;
SOCKET sin,sout;WSADATA wsd;
SOCKADDR_IN ladr,cadr;
datas params;
WSAStartup(MAKEWORD(2,0),&wsd);
ladr.sin_family=AF_INET;
ladr.sin_port=htons(250);
ladr.sin_addr.s_addr=0;
sin=socket(AF_INET,SOCK_STREAM,0);
bind(sin,(sockaddr*)&ladr,sizeof(ladr));
for(;;)
{
Sleep(300);
listen(sin,10);
int sz=sizeof(cadr);
sout=accept(sin,(sockaddr*)&cadr,&sz);
params.ss=sout;
params.sadr=cadr;
getpeername(sout,(sockaddr*)&cadr,&sz);
printf("\n",inet_ntoa(cadr.sin_addr));
CreateThread(0,0,&twins,(void*)¶ms,0,&id);
}
//WSACleanup();
}
Код:
printf("\n",inet_ntoa(cadr.sin_addr));
А куда делся спецификатор типа вывода в printf?
|
|
|

20.02.2009, 14:11
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Недавно занялся C++(совсем недавно), и сегодня попытался написать обычную работу с сокетами - открытие порта и его прослушиваение. Подключил winsock2.h, вроде сделал все как нужно, но на вызове функции socket компилятор выдаёт ошибку.
1>------ Build started: Project: test, Configuration: Debug Win32 ------
1>Compiling...
1>test.cpp
1>Linking...
1>test.obj : error LNK2028: unresolved token (0A00000F) "extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>test.obj : error LNK2028: unresolved token (0A000010) "extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>test.obj : error LNK2019: unresolved external symbol "extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>test.obj : error LNK2019: unresolved external symbol "extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>C:\Projects\test\Debug\test.exe : fatal error LNK1120: 4 unresolved externals
1>Build log was saved at "file://c:\Projects\test\test\Debug\BuildLog.htm"
1>test - 5 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
А вот сам исходник.
Код:
#include "stdafx.h"
#include "Form1.h"
#include "winsock2.h"
using namespace test;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
WSADATA wsaData;
SOCKET s;
WSAStartup(MAKEWORD(2,2), &wsaData);
s = socket(AF_INET,SOCK_STREAM,0);
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}
Помогите пожалуйста разобраться.
|
|
|

20.02.2009, 16:07
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
Итак попытка номер пять ). Патчему вывод из смд не перенаправляется? Паапки! Куку )
#include "stdafx.h"
#include "windows.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#pragma hdrstop
int main()
{
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
ZeroMemory( &pi, sizeof(pi) );
SECURITY_ATTRIBUTES secat;
secat.nLength = sizeof(SECURITY_ATTRIBUTES);
secat.bInheritHandle = TRUE;
secat.lpSecurityDescriptor = NULL;
HANDLE read_stdout,newstdout;
CreatePipe(&read_stdout,&newstdout,&secat,0)
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.hStdOutput=newstdout;
//si.cb;
GetStartupInfoA(&si);
CreateProcessA("C:\\WINDOWS\\system32\\cmd.exe", " /k dir", NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
DWORD bytes; //кол-во прочитанных байт
DWORD avail; //кол-во доступных байт
char buf[1023];
PeekNamedPipe(read_stdout, buf, 1023, &bytes, &avail, NULL);
ReadFile(read_stdout, buf, 1023, &avail, NULL);
std::cout << buf;
std::cin.get();
}
|
|
|

20.02.2009, 16:39
|
|
Познающий
Регистрация: 15.01.2009
Сообщений: 37
Провел на форуме: 628486
Репутация:
26
|
|
Объясниет на пальцах как в 6м Борланд Билдере определять количесво памяти и делать консольные приложения не привязаные к либам на данном кампутере? С синтаксисом я там буду сам уже ковырять, пока самое начало.
|
|
|

20.02.2009, 17:20
|
|
Познающий
Регистрация: 15.01.2009
Сообщений: 37
Провел на форуме: 628486
Репутация:
26
|
|
woohoo! Hello world!
|
|
|

20.02.2009, 18:19
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Понял ошибку. Не добавил
#pragma comment( lib, "wsock32.lib" )
|
|
|

21.02.2009, 16:36
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Как конвертировать массив char в тип String?
массив могу создавать или так
char buf[1024];
или так
char *buf = new char[1024];
|
|
|

21.02.2009, 16:49
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
Сообщение от Kuzya
Как конвертировать массив char в тип String?
массив могу создавать или так
char buf[1024];
или так
char *buf = new char[1024];
Если не ошибаюсь то все очень просто.
Код:
char buf[1024];
или так
char *buf = new char[1024];
string test = buf;
|
|
|

21.02.2009, 18:17
|
|
Участник форума
Регистрация: 20.02.2009
Сообщений: 224
Провел на форуме: 5075819
Репутация:
274
|
|
или так:
char buff[]="Hello word!";
string str(buff);
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|