Чел, у тебя либо виста либо хр сервис пак 2 или выше Наверн ты не знал, что мелкомягкие не разрешают сырые сокеты со xp sp2 ? Зажали сцуки(( Юзай sp1 да и там ограничено, если только заплатки MS05-019 нет, или снеси windows и поставь на витруальную машину либо любой *NIX или windows2K. Это и будет решением твоей проблемы
Я хочу отправить syn-пакет и потом проверить какой пакет пришел в ответ, с каким флагом. знал... Просто где-то пишут, что можно, где-то пишут, что нельзя... И вот еще, когда прога начинает работать, фаер не показывает куда идут пакеты. Пишет, что-то вроде "localhost:any". Эт че получается, что ничего не уходит? З.Ы. Code: source.sin_addr.s_addr = inet_addr(SRC); ... sd = socket(AF_INET, SOCK_RAW, IPPROTO_IP); ... setsockopt(sd, IPPROTO_IP, IP_HDRINCL, (char *)&on, sizeof(on));
Я ж тебе написал, файр тебе ниче не покажет, потому что пакеты никуда не идут, они просто не отправляются, твоя система не поддерживает сырые сокеты! Их поддерживают только windows2k и NIX*! И очень огранниченно твоя прога будет работать на XP SP1, но не факт. ПОэтому юзай виртуальную машину.
8))))))))))))) Code: Я хочу отправить syn-пакет и потом проверить какой пакет пришел в ответ, с каким флагом. давай ,чтоб ты не мучился я тебе сразу скажу что на твой пакет c SYN придет ответный пакет с SYN 8)))))))))))))))))))) причем готов поставить 100 баков против твоего одного 8))))) все читаем rfc /// ссылки даны в моей министатье!
Вот такой вопрос: в VC создаю на форме многострочный Edit Code: case WM_CREATE: hEditCtrl = CreateWindow (L"EDIT", L"TEXT \r\n", WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE, 10, 10, 500, 500, hwnd, (HMENU) EDIT_ID, hInst, NULL) ; break; Как в этот едит построчно выводить текст?(как в билдере в мемо Memo1->Lines->Add("TEXT"); )
у меня тоже вопрос. как выйти из этой программы??? Code: #include <stdio.h> #define MAXLINE 1000 int getline(char line[], int maxline); void copy(char to[], char from[]); /*output long string*/ main() { int len; int max; char line[MAXLINE]; char longest[MAXLINE]; char str; max = 0; while((len = getline(line, MAXLINE)) > 0) { if (len > max) { max = len; copy(longest, line); } } if (max > 0) { printf("%s", longest); } return 0; } int getline(char s[], int lim) { int c, i; for (i=0; i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) { s[i] = c; } if (c == '\n') { s[i] = c; ++i; } s[i] = '\0'; return i; } void copy(char to[], char from[]) { int i; i = 0; while ((to[i] = from[i]) != '\0') ++i; } т.е. как можно сделать выход ??
Code: #include <stdio.h> #define MAXLINE 1000 int getline(char line[], int maxline); void copy(char to[], char from[]); /*output long string*/ main() { int len; int max; char line[MAXLINE]; char longest[MAXLINE]; char str; max = 0; while( (len = getline(line, MAXLINE) ) > 0) { if (len > max) { max = len; copy(longest, line); } } if (max > 0) { printf("%s", longest); } return 0; } int getline(char s[], int lim) { int c, i; for (i=0; i<lim-1 && (c=getchar()) != EOF && c!='\n'; ++i) { s[i] = c; } if (c == '\n') { s[i] = c; ++i; } s[i] = '\0'; if ( c==27 ) exit(0); /*НАПРИМЕР ТАК*/ return i; } void copy(char to[], char from[]) { int i; i = 0; while ((to[i] = from[i]) != '\0') ++i; } Подредактировал, почему не пользуешься стандартными функциями string.h ?
_empty->спасибо, я так же и думал реализовать но выход по EOF тут не поможет, т.к. я работаю не с файлом, а с клавиатурой. А вобще возможно ли сделать так чтоб при нажатии Esc я вышел из программы?
Smapt Воспользуйся SetWindowText и GetWindowText. Только построчный вывод тебе нужно реализовать будет самостоятельно с помощью этих функций. 2procedure В стандартном потоке вывода EOF тоже имеет смысл и обозначает комбинацию по-моему ctrl+z. А если хочешь по ESC выходить, то у него есть свой код, ищи в инете ).
2 Delimiter & _empty: спасиб. Пошел читать рфц Одна из проблем была в неверной работе с тсп-заголовком. У меня лишнее поле появилось)))
необходимо получить список файлов в папке и список папок в папке... и запихнуть оба списка в разные масивы или просто вывести на экран...
Доброго времени суток. Имею MVS 2008, C#, FtpClient.dll программа зациклена, по таймеру 30 сек. проблемма в следующем: Code: XmlTextWriter myXmlTextWriter = new XmlTextWriter("Online.xml", System.Text.Encoding.UTF8); myXmlTextWriter.Formatting = Formatting.Indented; myXmlTextWriter.WriteElementString("name", null, name); myXmlTextWriter.Flush(); myXmlTextWriter.Close(); ниже: Code: FtpClient ftplib = new FtpClient(); try { ftplib.connect("server","login","pass"); ftplib.upload("Online.xml", ""); } finally { ftplib.disconnect(); } на начале следующеи итерации при попытке создать файл: Code: The process cannot access the file 'Online.xml' because it is being used by another process. подскажите пожалуйста, как обойти?
и еще.. другая программа этот файл скачивает и читает Code: StreamReader stream = new StreamReader("Online.xml"); XmlTextReader reader = null; reader = new XmlTextReader(stream); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: break; case XmlNodeType.Text: Console.Write(reader.Value + " "); break; case XmlNodeType.EndElement: break; } } файл хранится в виде Code: <a>a1</a> <b>b1</b> <c>c1</c> <d>d1</d> <a>a2</a> <b>b2</b> <c>c2</c> <d>d2</d> <a>a3</a> <b>b3</b> <c>c3</c> <d>d3</d> в ходе выполнения, в консоли появляется "a1 ", потом вываливается ошибка Code: There are multiple root elements. Line 2, position 2. подскажите, в какую сторону копать?
Microsoft Visual Basic 2008 Express Edition люди подскажите существует ли русификатор на Microsoft Visual Basic 2008 Express Edition , а то столько функций со всеми не разобраться
Создаю не блокируеммый сокет(WSAAsyncSelect ) в консоли: Code: #include <winsock2.h> #include <windows.h> #pragma comment (lib, "ws2_32.lib") #define IN_PORT 44405 #define MAX_DATA 100 #define WM_ASYNC_CLIENTEVENT WM_USER+1 SOCKET hListenSockTCP = INVALID_SOCKET; SOCKADDR_IN myaddrTCP; char buf[MAX_DATA]; HWND hwndMain; int main() { SetConsoleTitle(L"CS"); HWND hwndConsoleWindow; hwndConsoleWindow=FindWindow(NULL, L"CS"); if (hwndConsoleWindow==0) { printf("Error Find Window"); exit(0); } hwndMain = hwndConsoleWindow; WSADATA stWSADataTCPIP; if( WSAStartup(0x0101, &stWSADataTCPIP) ) printf("WSAStartup error !\n"); hListenSockTCP = socket (AF_INET,SOCK_STREAM,0); myaddrTCP.sin_family = AF_INET; myaddrTCP.sin_addr.s_addr = htonl (INADDR_ANY); myaddrTCP.sin_port = htons (IN_PORT); if( bind(hListenSockTCP,(LPSOCKADDR)&myaddrTCP, sizeof(struct sockaddr)) ) printf("This port in use!\n"); if ( listen (hListenSockTCP, 5) ) printf("listen error!\n"); if ( WSAAsyncSelect (hListenSockTCP,hwndMain,WM_ASYNC_CLIENTEVENT,FD_ACCEPT|FD_READ|FD_CLOSE) ) printf("AsyncSelect error!\n"); getchar(); return 0; } Вопрос, как обрабатывать события ,FD_ACCEPT,FD_READ,FD_CLOSE и тд???
2 smapt зачем в консоли неблокирующие сокеты??? Что можно заблокировать в консоли? ... асинхронные сокеты разрабатывались для mfc либо для проекта где ты обрабатываешь события сам!!!!! давай делай mfc диалоговое окно затем создавай константы const TCP_ACCEPT=WM_USER+102; const TCP_READ=WM_USER+104; создавай 2 публичные функции в классе блаблаViewDlg void OnMyTCPaccept(WPARAM wParam,LPARAM lParam) { ..... } и void OnMyTCPread(WPARAM wParam,LPARAM lParam) { ... } в мессаджмапе связывай функции и константы