![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Sockets [D5, NT4, Win2k]
Akni © (2002-08-27 22:53:00)Привет всем!
У меня возникло несколько вопросов по компонентам TclientSocket, TserverSocket. Может, кто-то подскажет какие-то идеи.
Вопросы следующие:
1. приходят ли данные от клиента к серверу в такой же последовательности, как они ушли с клиента, т.е. если на клиенте сделать
ClientSocket1.SendBuf(Buf1, SizeOf(Buf1))
ClientSocket1.SendBuf(Buf2, SizeOf(Buf2)),
то получит ли сервер сначала Buf1, а потом Buf2, или может прийти сначала Buf2, а потом Buf1?
2. Как с помощью блокирующего сокета отправить данные какому-то опредеденному клиенту?
С неблок. сокетом это можно сделать приблизит. так:
procedure Form1.Button1Click(Sender: Tobject);
begin
ServerSocket1.Socket.Connections[i].SendBuf(Buf,SizeOf(Buf));
end;
А как это реализовать для блок. сокета?
Ketmar (2002-08-28 14:26:00) [1]хм. естественно. я неточно выразился. имелось в виду, что TCP пришлет все в том же порядке, в каком отправлялось. а UDP, в виду своей "непотоковости" и "бесконтрольности" :-) может и потерять пакетик по дороге. или же позже посланный пакет может прийти ранее посланного перед ним.
Satanas Nobiscum! 28-Aug-XXXVII A.S.
Malder (2002-08-28 13:16:00) [2]Ну UDP тоже байтики не перепутает между прочим...
Ketmar (2002-08-28 09:35:00) [3]скажем даже так: ПОРЯДОК байтов не перепутается (т.е. First In-First Out), но не обязательно прийдет сразе то же самое кол-во байтов, что было послано. TCP/IP - потоково-ориентированный протокол. т.е. байтики он не перепутает (в отличие от UDP, хотя и у UDP такое поведение маловероятно. однако возможно).
Satanas Nobiscum! 28-Aug-XXXVII A.S.
Reindeer Moss Eater (2002-08-28 08:02:00) [4]Точнее так: на уровне приложения сервер всегда примет сначала Buff1, а потом Buf2
Reindeer Moss Eater (2002-08-28 07:59:00) [5]1. Совсем не обязательно. Но задумываться над этим не стоит. Это не твои проблемы.
2. Точно так же