altazario
|
|||||||||||
1 | |||||||||||
програмируем сеть :D02.09.2008, 16:23. Показов 3660. Ответов 8
Метки нет Все метки)
(
значит так вот простенькие исходники клиента и сервера которые работают на локальной машыне через возвратный адрес но можно и через сеть
пример взят с книги Йон Снейдер - Эффективное программирование TCP-IP хорошая и умная книга пример клиента:
вопрос... для тех кто зает..... почему оно не компилитса если в функцию передачи в коде клиента вместо "1" на строке 35 rc = send( s, "1" , 3, 0 ); задать переменную а 35 rc = send( s, a , 3, 0 ); а обявлена как целое число int a; я так понимаю функцыя send передайот только константу, но почему!!?? и каким образом можно передать переменную и еще вопрос... допустим клиент передал бит сервер принял програма выполнилась , но если я пробую сразу опять запустить сервер он не запускается так как ошибка вызова bind как с этим справится andriy@akva:~/Desktop$ g++ g.c -o g.o g.c: In function ‘int main()’: g.c:35: error: invalid conversion from ‘int’ to ‘const void*’ g.c:35: error: initializing argument 2 of ‘ssize_t send(int, const void*, size_t, int)’ |
|
02.09.2008, 16:23 | |
Ответы с готовыми решениями:
8
Сеть, сеть и еще раз сеть=(( Не получается раздовать интернет через PPPoE сеть 1 в локальную сеть 2 Объединить сеть офиса и удаленные компы в одну сеть через OpenVPN(+bridge) Настроить сеть на Windows 10 по схеме: USB модем - компьютер - роутер - локальная сеть |
![]() 2254 / 769 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
02.09.2008, 17:39 | 2 |
send принимает как аргумент адрес. Ты передаешь значение.
выражение const void * не значит,что нужно передавать константу.Оно значит,что буффер не будет изменен в процессе работы функции. Короче , вместо a пиши &a.
0
|
1 / 1 / 0
Регистрация: 09.04.2009
Сообщений: 5
|
|||||||||||||||||||||
10.04.2009, 09:38 | 3 | ||||||||||||||||||||
ну во первых ты поменяй
Клиент: while (fgets(buf, sizeof(buf), stdin) != NULL)
0
|
4203 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
22.04.2010, 12:44 | 5 |
altazario, не разъяснишь вот эту строчку:
? В болэнде под сокетами понимались классы, инкапуслирующие сеть, а здесь вдруг присваивание сокета инту. Что это?
0
|
4865 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
23.04.2010, 10:13 | 6 | |||||
есть например 0, 1, 2 для stdin, stdout, stderr а там может вернуть 3 для соединения да, там выше дело было в int'е, что a - это int, "1" не при чём
0
|
4203 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
23.04.2010, 10:30 | 7 | |||||
То есть здесь под сокетом понимается не объект, а его дескиптор? А оболочечные классы, похожие на болэндовские сокеты, но, не идентичные им, накрутить не поможешь?
0
|
4865 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
23.04.2010, 10:50 | 8 | |||||
![]() ![]()
0
|
4203 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
23.04.2010, 11:07 | 9 |
Под студией может указатель (или дескриптор же), но в болэнде всё спрятано в класс. Создаёшь объект этого класса, а он уже сам запрашивает систему.
Добавлено через 1 минуту И кроме многоточий в декларации, меня ещё интересует реализация членов, как объявленных, так и тех, которые надо добавить. Добавлено через 2 минуты . altazario, может ты тогда поможешь? Добавлено через 2 минуты А разве неизменяемость буфера не означает, что с точки зрения такой функции, ей перадётся указатель на константу?
0
|
23.04.2010, 11:07 | |
Помогаю со студенческими работами здесь
9
VirtualBox. Делаю маленькую сеть из 2 Windos Server 2016 + Windows 10: не пингуется сеть Как настроить сеть, инет работает, а сеть нет
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |