|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Создание сокета в C |
|
Новый участник Сообщения: 16
|
Профиль | Сайт | Отправить PM | Цитировать Создание сокета
|
------- Отправлено: 16:28, 28-10-2003 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
ParsVita
Сообщения: n/a |
Функция socket()
Добавлено: Создаю сокет sd = socket(PF_INET,SOCK_STREAM,0); после этого sd равен 0. Это вообще нормально, или нет? ошибку ф-я в этом случае не возвращает, а вот ф-я connect() с этим дескриптором пишет, что это не дискриптор сокета! Работаю в LInux не рутом на С! Подскажите в чем может быть проблемма! |
Отправлено: 16:30, 28-10-2003 | #3 |
Новый участник Сообщения: 49
|
Профиль | Отправить PM | Цитировать Например так:
SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); Что конкретно надо от сокета? [s]Исправлено: unknown bug, 18:32 28-10-2003[/s] |
Отправлено: 17:32, 28-10-2003 | #4 |
![]() Guest |
Normalno elsi u tebya stdin, stdout, ... zakriti
#include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> int main () { const char host[] = "www.tanet.edu.te.ua"; const int port = 80; char buffer[1024] = "GET / HTTP/1.0\r\n\r\n"; int n; int s; struct sockaddr_in addr; struct hostent *he; fprintf (stderr, "Connecting to %s:%d ...\n", host, port); s = socket (AF_INET, SOCK_STREAM, IPPROTO_IP); if (s < 0) { perror ("socket" ![]() return (1); } he = gethostbyname (host); if (!he) { fprintf (stderr, "gethostbyname: %s\n", hstrerror (h_errno)); return (1); } memset (&addr, 0, sizeof (addr)); addr.sin_family = AF_INET; addr.sin_port = htons (port); inet_aton (he->h_addr_list[0], addr.sin_addr); if (connect (s, (struct sockaddr *)&addr, sizeof (addr)) < 0) { perror ("connect" ![]() return (1); } fprintf (stderr, "Connected!\nReceiving answer ...\n" ![]() send (s, "GET / HTTP/1.0\r\n\r\n", 18, 0); while ((n = recv (s, buffer, sizeof (buffer), 0)) != 0) { if (n == -1) { perror ("recv" ![]() break; } write (1, buffer, n, 0); } return (1); } Compile: gcc -o socket socket.c ./socket |
|
Отправлено: 22:30, 28-10-2003 | #5 |
![]() Старожил Сообщения: 240
|
Профиль | Отправить PM | Цитировать ParsVita
а причём здесь makefile??? ![]() |
------- Отправлено: 05:08, 29-10-2003 | #6 |
Новый участник Сообщения: 16
|
Профиль | Сайт | Отправить PM | Цитировать Guest Боольшое спасибо!
Все работает! А все из-за IPPROTO_IP и AF_INET вместо PF_INET. а то замучался - в книгах написано 0 ставить, а книги за 70грн. покупал. Зато в них много др. полезного. Так что СПАСИБО! |
------- Отправлено: 17:23, 30-10-2003 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
помогите (серьезно нужна помощь) не запускается мать сокета 370 | GORAND | Непонятные проблемы с Железом | 20 | 10-01-2009 10:10 | |
ошибка открытия сокета | eggdrop | Microsoft Windows 2000/XP | 9 | 12-04-2005 20:18 | |
Создание таблицы | Vadikan | Вебмастеру | 19 | 30-10-2004 02:26 | |
Создание сервера | r00tk1t | Вебмастеру | 1 | 13-10-2004 14:14 | |
Создание форума | Guest | Вебмастеру | 3 | 29-03-2004 23:32 |
|