| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Сетевой кодинг |
| Автор: [ss]3L33T@ 10.11.2003, 14:58 |
| Вот тут подумал - а ведь я ничерта не знаю о сетевом кодинге. ПРОШУ, КАК КОДЕР КОДЕРОВ:напишите plz простую прогу типа client-server. Работать должна так: 1)Клиент пишет какую-то строку символов, по нажатию enter'а она отправляется серваку 2)Сервер принемает эту строку и выводит её на экран. 3)Всё должно быть в Console Application'е. Прошу без умных слов, просто напишите прогу! |
| Автор: shedon 10.11.2003, 16:23 |
| http://www.sources.ru/ - там всё есть!!! |
| Автор: RAN 10.11.2003, 22:51 | ||
|
| Автор: knave 12.11.2003, 16:41 |
| да уж, вот еще тут должно быть codeproject.com и codeguru.com |
| Автор: knave 12.11.2003, 16:54 |
| Совет - неужели нельзя сесть с книгой и поэксперементировать самому - пописать пограмки где испоолтзуются ту конструкции которые тебе непонятны, и исследовать их работу. Ты тут кучу таких вопросов задал, ответы на которые есть в любой книге по программированию. |
| Автор: r88t 14.11.2003, 00:13 |
| Помогите пожалуйста!!! Нужен исходник простой проги на C++ посылающий GET запрос на web сервер и выводящий ответ. Типа на php это так выглядит: $fp=fsockopen('localhost','80'); fputs ($fp, "GET / \r\n\r\n"); while (!feof($fp)) { print fgets($fp); } [email protected] |
| Автор: NiJazz 14.11.2003, 00:43 | ||
| [ss]3L33T@, я тут делал такое... Клиент:
Сервер: [CODE] #include <stdio.h> #include <windows.h> #include <winbase.h> #include <malloc.h> int main() { HANDLE hPipe; LPTSTR pName = "\\\\.\\pipe\\mypipe"; PINT piDigit = (PINT)malloc(sizeof(INT)); DWORD dwBytesForPipe = sizeof(INT); DWORD dwBytesReadOut; DWORD dwBytesToRead = sizeof(INT); INT iSum = 0; ////////////////////////////////////////////////////////////////////////// try { hPipe = CreateNamedPipe( pName, PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, dwBytesForPipe, dwBytesForPipe, NMPWAIT_USE_DEFAULT_WAIT, NULL ); if (hPipe == INVALID_HANDLE_VALUE) { printf("Error while creating a named pipe, "); //printf("%d\n", GetLastError()); throw 0; } /*else printf("\nPipe's created\n\n");*/ for (;;) { if (!ConnectNamedPipe( hPipe, NULL)) { printf("Error while connecting to a named pipe, "); //printf("%d\n", GetLastError()); throw 0; } if (!ReadFile( hPipe, piDigit, dwBytesToRead, &dwBytesReadOut, NULL )) { printf("Error while reading data, "); //printf("%d\n", GetLastError()); throw 0; } if (dwBytesReadOut != dwBytesToRead) { printf("Data read size error\n"); throw 0; } if (!FlushFileBuffers(hPipe)) { printf("Error while flushing buffers, "); //printf("%d\n", GetLastError()); throw 0; } iSum = iSum + *piDigit; printf("%d\n", iSum); if (!DisconnectNamedPipe(hPipe)) { printf("Error while disconnecting from a named pipe, "); //printf("%d\n", GetLastError()); throw 0; } }//for(;;) end }//try end catch (...) { printf("%d\n", GetLastError()); } // очистака памяти for (int i = 0; i < NUM_OF_GROUPS; i ++) { if (SidList[i] != NULL) FreeSid(SidList[i]); SidList[i] = NULL; } free(piDigit); piDigit = NULL; if (pAcl != NULL) { LocalFree(pAcl); pAcl = NULL; } CloseHandle(hPipe); return 0; } [CODE] Компилить под VC++ 6. Я правда ещё атрибуты безопасности делал к каналу, но сейчас убрал, чтобы не осложнять. А так там ещё было ограничение на группы юзеров... Удачи! |
| Автор: NiJazz 14.11.2003, 00:44 |
| [ss]3L33T@, ни умных слов, ни комментариев... |
| Автор: NiJazz 14.11.2003, 00:50 | ||
Поправка к серверу:
Некоторые лишки убрал... |
| Автор: NiJazz 14.11.2003, 00:51 |
| Если будут вопросы - задавай... |
| Автор: [ss]3L33T@ 14.11.2003, 17:27 |
| 2 NiJazz: Пасибо. Хоть кто-то. |
| Автор: NiJazz 16.2.2004, 12:29 |
| Давно уж прошло. Просто наткнулся на то, что понизили рейтинг за нежелание продвигать эту тему. Думаю, что разумно продолжить её. Кто первый? |