[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Чел, у тебя либо виста либо хр сервис пак 2 или выше :)
    Наверн ты не знал, что мелкомягкие не разрешают сырые сокеты со xp sp2 ?
    Зажали сцуки(( Юзай sp1 да и там ограничено, если только заплатки MS05-019 нет, или снеси windows и поставь на витруальную машину либо любой *NIX или windows2K. Это и будет решением твоей проблемы
     
  2. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Я хочу отправить 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));
    
     
  3. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Я ж тебе написал, файр тебе ниче не покажет, потому что пакеты никуда не идут, они просто не отправляются, твоя система не поддерживает сырые сокеты! Их поддерживают только windows2k и NIX*! И очень огранниченно твоя прога будет работать на XP SP1, но не факт. ПОэтому юзай виртуальную машину.
     
    #1263 _empty, 4 Jul 2008
    Last edited: 4 Jul 2008
    1 person likes this.
  4. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    8)))))))))))))

    Code:
    Я хочу отправить syn-пакет и потом проверить какой пакет пришел в ответ, с каким флагом.
    давай ,чтоб ты не мучился я тебе сразу скажу что на твой пакет c SYN придет ответный пакет с SYN 8)))))))))))))))))))) причем готов поставить 100 баков против твоего одного 8)))))

    все читаем rfc /// ссылки даны в моей министатье!
     
    1 person likes this.
  5. Smapt

    Smapt Elder - Старейшина

    Joined:
    29 Jan 2008
    Messages:
    31
    Likes Received:
    32
    Reputations:
    3
    Вот такой вопрос:
    в 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"); )
     
  6. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    у меня тоже вопрос. как выйти из этой программы???
    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;
    }
    
    т.е. как можно сделать выход ??
     
  7. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    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 ?
     
    #1267 _empty, 5 Jul 2008
    Last edited: 5 Jul 2008
  8. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    _empty->спасибо, я так же и думал реализовать но выход по EOF тут не поможет, т.к. я работаю не с файлом, а с клавиатурой. А вобще возможно ли сделать так чтоб при нажатии Esc я вышел из программы?
     
  9. izlesa

    izlesa Elder - Старейшина

    Joined:
    3 Jan 2008
    Messages:
    112
    Likes Received:
    32
    Reputations:
    5
    Smapt

    Воспользуйся SetWindowText и GetWindowText. Только построчный вывод тебе нужно реализовать будет самостоятельно с помощью этих функций.

    2procedure
    В стандартном потоке вывода EOF тоже имеет смысл и обозначает комбинацию по-моему ctrl+z.
    А если хочешь по ESC выходить, то у него есть свой код, ищи в инете ).
     
  10. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    2 Delimiter & _empty: спасиб. Пошел читать рфц :)
    Одна из проблем была в неверной работе с тсп-заголовком. У меня лишнее поле появилось)))
     
  11. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    выдает ошибку:
    ругается на exit(0);
     
  12. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Ах да, сорри забыл ,

    PHP:
    #include <stdlib.h>
     
  13. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    программа начала компилироваться но не работает((
     
  14. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    щас я тебе нормально ее перепишу с использованием string.h
     
  15. FIND_ERROR

    FIND_ERROR Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    70
    Likes Received:
    14
    Reputations:
    0
    необходимо получить список файлов в папке и список папок в папке... и запихнуть оба списка в разные масивы или просто вывести на экран...
     
  16. LLIbIcpEP

    LLIbIcpEP New Member

    Joined:
    6 Jul 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток.
    Имею 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.
    подскажите пожалуйста, как обойти?:confused:
     
  17. LLIbIcpEP

    LLIbIcpEP New Member

    Joined:
    6 Jul 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    и еще..
    другая программа этот файл скачивает и читает
    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.
    подскажите, в какую сторону копать? :confused:
     
  18. heretic1990

    heretic1990 Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    Microsoft Visual Basic 2008 Express Edition

    люди подскажите существует ли русификатор на Microsoft Visual Basic 2008 Express Edition , а то столько функций со всеми не разобраться :)
     
  19. Smapt

    Smapt Elder - Старейшина

    Joined:
    29 Jan 2008
    Messages:
    31
    Likes Received:
    32
    Reputations:
    3
    Создаю не блокируеммый сокет(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 и тд???
     
  20. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    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)
    {
    ...
    }

    в мессаджмапе связывай функции и константы
     
    #1280 Delimiter, 7 Jul 2008
    Last edited: 7 Jul 2008
Thread Status:
Not open for further replies.