![]() |
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 организовать |
Ту сноу! Нихера ни кг\ам. Это в нетленку. Я когда наутро это дело прочитал, сперва хотел потереть, но потом решил оставить.
Ту гемаглабину! Пользовать делфи и причетать на тяжесть конпонентов как-то странно. Я использую делфи когда нужно быстро получить результат. Если же задумываешься о размерах и быстродействии связка С+ВИН АПИ то, что доктор прописал! |
| Время: 23:01 |