Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пример использования WinSock 
V
    Опции темы
SneG0K
Дата 29.12.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Смотрел я ту тему... там того, что мне надо нет!!!
PM WWW Skype   Вверх
SneG0K
Дата 30.12.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Спасибо вссем, кто хоть чуть-чуть мне помогал... После долгих бессонных ночей, проведенных в гугле, он все же дал мне необходимый результат! Всем спасибо... И с наступающим новым годом!!! Путь в новом 2008 году у вас всех будет все хорошо!
PM WWW Skype   Вверх
Mopgop
  Дата 4.3.2008, 20:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.3.2008

Репутация: нет
Всего: нет



мдя, хоть сцылкой бы поделился.. толк от темы то? )))

действительно ссылки на DW мало дают предстваления.
не ужели никто не пишет примеров наподобие:
запуск сервера
прослушиваем порт
коннект юзверя
юзверь посылает сообщение
сервак принимает сообщение
сервак отправляет подтверждение принятия сообщения.

ну и + обработку исключительных ситуаций: сервер закрылся, а клиенты были подключены; клиент подключается, а сервака нет; пакет не дошел в целости, еще раз отправить.

балин плиз срочно инфы надо и побольше, читать явно не лень! просто дали задание сделать сервак-клиент. Ну я написал чат через IdUDPServer/client + там же еще пересылка файлов, обновление юзверей, смена подсети работы проги, игра крестики-нолики (в ней уже передача команд через IdTCPServer/Client), и куча всего, обработка всевозможных ошибок и т.п. и терь сообщают мол надо было только с пом. винсокетов. [censored 6] :о( плиз пример для передачи банальных сообщений дайте с комментами, и я уже всё остальное по новой прикручу.
ЗЫ: желательно было бы книгу, но только не Эффективное прог-ние тср/ip. ибо йа не знать С :( smile 
PM MAIL   Вверх
Elite
Дата 4.3.2008, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Mopgop, Мда все это печальноя уже на 3 форуме один и тот же вопрос задаю по сокетам, и ни на одном не дали нормального ответа, толи народ незнает, а скорее всего знает, но помогать никто не торопятся на одном так даж и ответили и вобще чтобы на русскоязычных форумах помогли без предварительной выпендрежки большая редкость,  складывается впечатления, что некоторые участники кроме как в свом посте написать до боли заезженную ссылку www.google.ru, ничего незнают притом если полистаь чуток форум в этом можно убедиться в оочую, а знаменитая фраза "юзай гугл" smile  уже вошла в историю.... smile 
А по сокетам скачай книгу М. Фленова delphi в шутку и всерьез что умеют хакеры, там неплохо написано о них, и о том как кодить клиенты и  серверы.
PM MAIL   Вверх
SneG0K
Дата 5.3.2008, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Блин... Кто-то один обратитесь ко мне, я вам помогу с сокетами smile Тема трехмесячной давности.... Мне тоже никто толком ниче не !рассказал!, но я нашел литературу и все сам прочитал!!! Между прочим из гугля!!!

 smile 
Эх разленился народ!

Добавлено через 1 минуту и 50 секунд
Цитата(Elite @  4.3.2008,  22:33 Найти цитируемый пост)
 скачай книгу М. Фленова delphi в шутку и всерьез что умеют хакеры, там неплохо написано о них

Хоть одна умная мысль smile (к участникам форума не относится, у половины из них всегда умные мысли)...



Сорь за оффтоп smile 
PM WWW Skype   Вверх
Elite
Дата 5.3.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



WinSock
Вот тема помоги если можеш, в нете находил много тем по отправке писем, но лиш некоторые работают правильно, но вопрос в том как отправить письмо с вложением, т.к. код приведенный в теме почемуто неотправляет такое письмецо.

Цитата(SneG0K @  5.3.2008,  00:08 Найти цитируемый пост)
Мне тоже никто толком ниче не !рассказал!, но я нашел литературу и все сам прочитал!!! Между прочим из гугля!!

Вот поэтому многие и говорят, что мол если искал я и рылся по всему нету в поисках инфы то почему я должен подсказывать начинающим, "пусть сами копошатся как и я", нехотят русские помогать друг другу, в своем высказывании я не имел ввиду этот форум, я отметил общее положение дел, на нескольких кодерских форумах, т.к. все больше и больше остается вопросов без ответа. smile 
PM MAIL   Вверх
SneG0K
Дата 5.3.2008, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Цитата(Elite @  5.3.2008,  13:17 Найти цитируемый пост)
 нехотят русские помогать друг другу

Хм... я Украинец smile И я не против помочь. Просто когда больше узнаеш, некоторые вопросы попросту начинают казаться идиотскими! и на них не охота отвечать smile 
PM WWW Skype   Вверх
MetalFan
Дата 5.3.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Elite @  5.3.2008,  14:17 Найти цитируемый пост)
все больше и больше остается вопросов без ответа

каков вопрос, таков ответ.
если спрашивают ерунду, или то, что недавно уже обсуждалось (что показывает лень или неумение человека поиском пользоваться), то естественно никому по 10 раз объяснять не захочется.
а если вопрос интересный и/или правильно задан, то и ответ/совет всегда дельный дадут.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
SneG0K
Дата 5.3.2008, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Согласен с 
MetalFan
PM WWW Skype   Вверх
Mopgop
Дата 20.5.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.3.2008

Репутация: нет
Всего: нет



Цитата("Йа")
плиз пример для передачи банальных сообщений дайте с комментами, и я уже всё остальное по новой прикручу.
ну и + обработку исключительных ситуаций: сервер закрылся, а клиенты были подключены; клиент подключается, а сервака нет; пакет не дошел в целости, еще раз отправить.

ну йа писал конкретно 

ушел в аську к Снежку.. 

Это сообщение отредактировал(а) Mopgop - 20.5.2008, 10:11
PM MAIL   Вверх
elestrago
Дата 23.5.2008, 07:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 23.8.2007
Где: runet

Репутация: 1
Всего: 3



лови

Код

program winsock_server; 
//Простейшее приложение-сервер.
//Сокеты работают в блокирующем режиме.
//На каждое соединение создается отдельный поток.
{$apptype console}
uses
sysutils,
winsock,
windows;
var
vwsadata : twsadata;
vlistensocket,vsocket : tsocket;
vsockaddr : tsockaddr;
trid : thandle;
const
cport = word(33);
csigexit = 'q';
//Процедура отдельного потока для каждого клиента.
procedure socketthread;
var sockname : tsockaddr;
abuf : array of char;
vbuf : string;
vsize : integer;
s :tsocket;
bufsize : integer;
begin
s := vsocket;
if s = invalid_socket then exit;
vsize := sizeof(tsockaddr);
getpeername(s, sockname, vsize);
writeln(format('client accepted, remote address [%s].',[inet_ntoa (sockname.sin_addr)]));
//Определяем размер буфера чтения для сокета
vsize := sizeof(bufsize);
getsockopt(s,sol_socket,so_rcvbuf,pchar(@
bufsize),vsize);
writeln(format('receive buffer size [%d]',[bufsize]));
setlength(abuf,bufsize);
repeat
//Получаем данные. Процедура работает в блокирующем режиме,
//таким образом следующая строка кода не получит управление,
//пока не поступят данные от клиента.
vsize := recv(s,abuf[0],bufsize,0);
if vsize<=0 then break;
setlength(vbuf,vsize);
lstrcpyn(@vbuf[1],@abuf[0],vsize);
writeln(format('received from cleint: %s',[vbuf]));
until vbuf = 'q';
writeln(format('client disconnected, remote address [%s].',[inet_ntoa(sockname.sin_addr)]));
setlength(abuf,0);
closesocket(s);
end;
 
begin
writeln('starting application...');
//Объявляем, что программа будет использовать windows sockets.
if wsastartup($101,vwsadata)<>0 then halt(1);
writeln('using windows sockets.');
//Создаем прослушивающий сокет.
vlistensocket := socket(af_inet,sock_stream,ipproto_ip);
writeln(format('creating socket on port [%d].',[cport]));
if vlistensocket = invalid_socket then halt(1);
fillchar(vsockaddr,sizeof(tsockaddr),0);
vsockaddr.sin_family := af_inet;
vsockaddr.sin_port := htons(cport);
vsockaddr.sin_addr.s_addr := inaddr_any;
writeln('binding socket...');
//Привязываем адрес и порт к сокету.
if bind(vlistensocket,vsockaddr,sizeof(tsockaddr)) <> 0
then halt(1);
//Начинаем прослушивать.
if listen(vlistensocket,somaxconn) <> 0
then halt(1);
writeln('socket status: listening.');
repeat
//Ожидаем подключения.
vsocket := accept(vlistensocket,nil,nil);
//Клиент подключился, запускаем новый процесс на соединение.
createthread(nil,0,@socketthread,0,0,trid);
until false;
closesocket(vlistensocket);
wsacleanup;
end. 



function wsastartup(wversionrequired: word; var wsdata: twsadata): integer; stdcall;
Функция сообщает ОС, что в любом процессе приложения могут быть использованы функции winsock. Функция должна быть вызвана один раз при запуске приложения перед использованием любой функции winsock.
function wsacleanup: integer; stdcall;
Функция сообщает ОС, что приложение более не использует winsock. Должна быть вызвана перед завершением приложения.
function socket(af, struct, protocol: integer): tsocket; stdcall; 
Функция создает сокет. Порт и адрес задается в функции bind (сервер) или connect (клиент). Входящий параметр af - спецификация семейства сокетов (af_inet, af_ipx и др.), struct - спецификация типа нового сокета (принимает значение sock_stream или sock_dgram), protocol - специфический протокол, который будет использоваться сокетом. Если функция выполнена без ошибок, она возвращает дескриптор на новый сокет, если ошибки есть, возвращается invalid_socket. 
function connect(s: tsocket; var name: tsockaddr; namelen: integer): integer; stdcall; 
Функция соединения для клиента. Структура адреса содержит порт (необходимо привести функцией htons) и адрес (для клиента необходимо привести из имени или спецификации ip4 - xxx.xxx.xxx.xxx). 
function bind(s: tsocket; var addr: tsockaddr; namelen: integer): integer; stdcall;
 Функция ассоциирует адрес с сокетом. Структура адреса содержит порт (необходимо привести функцией htons) и адрес (для сервера обычно указывается inaddr_any - любой).
 function send(s: tsocket; var buf; len, flags: integer): integer; stdcall;
 Функция отправки данных. Помещает в очередь сокета s кусок данных из buf, длиной len. Последний параметр отвечает за вид передачи сообщения. Может быть проигнорирован (0). 
 function recv(s: tsocket; var buf; len, flags: integer): integer; stdcall;

Функция получение данных.
--------------------
PM MAIL ICQ   Вверх
elestrago
Дата 23.5.2008, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 23.8.2007
Где: runet

Репутация: 1
Всего: 3



да и вот еще ссылка на мсдн почитай там много полезного MSDN
--------------------
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0826 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.