![]() |
Socket
Компоненты для работы с сокетами... и есть ль !компонент! позволяющий переключить протокол Tcp/udp
|
такого и нету, да и нужен ли он ?
используй компоненты TclientSocket TServerSocket из dclsockets70.bpl (в 7 делфе) |
неа... только на Winsock! позволяющий переключиться между UDP/TCP протоколом... т.е. 2 в 1....
и вот еще как в SocketUnit получить пакет на сервере (TServerSocket.Accept???! так?!) |
в серваке типа TServerSocket есть событие OnClientRead
по этому событию Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;Код:
s:=Socket.ReceiveText;я , наверное, не правильно понял, не текст, а файлик ты хочешь получить тогда так клиент должен Код:
Form1.ClientSocket1.Socket.SendStream(fs_u);выбранный файлик сервак должен в процедуре ServerSocket1ClientRead (см выше) Код:
fs_u:=TFileStream.Create(Newdir+FileName,fmCreate);наоброт посылать файлик -- полностью аналогично пиши на мыло помогу |
неа, не то....
дело в том что работа с сокетами осуществляется через dll и должна быть возможность переключения между udp и tcp протоколом |
Я правильно понял, ты хочешь менять протоколы на лету для одного и того же порта? На сколько я знаю это невозможно, отправить на tcp порт udp пакет...
Если же нет, используй два порта и библиотеку indy там все есть. Хотя, если тебе не лень можешь подменить таблицу импорта для winsock.dll и перенаправлять такеты на разные порты фнутри функции. Можно создать видимость смены протоколов. Или же, другой вариант, подменить адреса векторов прерываний у сетевухи, и там уже отправлять что хочешь и куда хочешь, только я не уверен, что архитектура это позволит... Хотя будет интересно! |
2da_ff: ахинея. кг/ам вообщем.
юз винапи, и не ипем мозг с компонентами, ибо кроме гимора и чужого подхода ничего не поимеем. SOCKET socket( int af, int type, int protocol ); type= SOCK_STREAM (TCP) type= SOCK_DGRAM (UDP) + немного добавлю: UDP в отличие от TCP не ведет контроля соединения, а просто отправляет сообщения (дейтаграммы). |
Лучше не использовать такие гадости,как Indy и TClientSocket.
Код:
var Sock : integer;Код:
var Sock : integer; |
все...
/me теперь думает как все это на winsock организовать |
Ту сноу! Нихера ни кг\ам. Это в нетленку. Я когда наутро это дело прочитал, сперва хотел потереть, но потом решил оставить.
Ту гемаглабину! Пользовать делфи и причетать на тяжесть конпонентов как-то странно. Я использую делфи когда нужно быстро получить результат. Если же задумываешься о размерах и быстродействии связка С+ВИН АПИ то, что доктор прописал! |
2da_ff зачем делать окошки с помощью апи когда можно задать все через классы? делфи только в этом плане удобен. а сокеты с окошками никак не связаны.
|
Ту зако! Я имел ввиду основная прелесть делфи, на мой взгляд, заключаеться именно в наличии большого выбора компонентов. Что сильно ускоряет получение конечного результата. Однако, за это приходиться платить производительностью. Поэтому, на мой взгляд писать на делфи и отказываться от компонентов как-то странно. Опять же повторюсь, я вижу основной плюс делфи именно в компонентах. А если же требуется производитьельность, или как в данном случае скрытность (кстати в чем заключается палево я так и не понял) или производительность, делфи не самый лучший выбор. Я так думаю!
|
Быстрый результат - пользуйте PHP и bamcompile =))) А Делфи фуу гадость какая мерзость, фубяка, испачкалси =(
|
2da_ff а вот скорость работы "окошечек" на делфи врядли отличается от аналогичного приложения на апи. в тоже время компоненты по работе с сокетами - сильно + функционал.
>>производительность, делфи не самый лучший выбор это смотря чего. опять же окошечки. отказываться не надо - нужно выбирать то что лежит на золотой середине. сокеты - слишком извратно, я тоже писал когда-то трояна с такими компонентами :) думаю тема ебли раскрыта. 2Zadoxlik а сам в среде билдера программит)) |
Цитата:
А вообще не столько говно делфи сколько сам паскаль, в данном случае объектный. Фу |
билдер изврат это даже хуже с\м!!!
ту зако! так я ничего и не имею против делфи с компонентами! а что касается вин апи, то я могу сказать, на мой взгляд кодогенерация в делфи все же хромает, и скорость выполнения увеличивается за счет компоновки, что плохо сказывается на размере. вин апи же находится все же поближе к ядру, и это обстоятельство не может плохо сказываться на быстродействии, однако зачастую при програмировании на вин апи импортируют стотонние длл, и их подгрузка и тормозит работу при запуске, зато получаем малый размер на выходе. Я так думаю! |
| Время: 22:17 |