Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Создание сокета в C

Ответить
Настройки темы
Создание сокета в C


Сообщения: n/a

Профиль | Цитировать



Отправлено: 03:00, 01-01-1970

 

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Сайт | Отправить 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
Благодарности: 0

Профиль | Отправить 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

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


Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


ParsVita
а причём здесь makefile???

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 05:08, 29-10-2003 | #6


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Guest Боольшое спасибо!
Все работает! А все из-за IPPROTO_IP и AF_INET  вместо PF_INET.
а то замучался - в книгах написано 0 ставить, а книги за 70грн. покупал.
Зато в них много др. полезного.

Так что СПАСИБО!

-------
Боюсь не дожть мне до светлого дня,
Когда наконец-то не станет меня!
:))))))]


Отправлено: 17:23, 30-10-2003 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Создание сокета в C

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
помогите (серьезно нужна помощь) не запускается мать сокета 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




 
Переход