Форум: "Сети";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Внизвопрос по сокету Найти похожие ветки
← →
kibork © (2004-06-20 22:44) [0]кто знает точно?* Отправляем текст по сокету...
например Socket.SendText("hello to all");
сокет запомнит длинну текста или нет?* Ну тоисть если потом послать еще текст до того как клиент прочитал это то будут два куска или один?*
← →
Cardinal © (2004-06-20 22:57) [1]>Ну тоисть если потом послать еще текст до того как клиент >прочитал это то будут два куска или один?*
Точно сказать не могу, но, наверное, это будет один кусок (receivetext, кажется).
← →
Rouse_ © (2004-06-20 23:24) [2]Нет не запомнит, это Stream и ни что иное... разделять сам должен...
← →
Кирюша (2004-06-21 01:35) [3]Удалено модератором
← →
Кирюша (2004-06-21 01:37) [4]Удалено модератором
← →
Кирюша (2004-06-21 01:38) [5]Удалено модератором
← →
Кирюша (2004-06-21 01:39) [6]Удалено модератором
← →
Кирюша (2004-06-21 01:41) [7]Удалено модератором
Примечание: 3 дня R/O
← →
Amoral © (2004-06-21 05:11) [8]<<Кирюша (21.06.04 01:41) [7]
пошли куда подальше Маст дай с его глюками и вернитесь к тихому и доброму ДОсу
>>Это тебя надо послать куда подальше
//
<<kibork © (20.06.04 22:44)
Ну тоисть если потом послать еще текст до того как клиент прочитал это то будут два куска или один?*
>>При каждой отправке "текста" через сокет методом Socket.SendText(msg:string); будет посылаться только msg.
← →
Digitman © (2004-06-21 09:14) [9]
> если потом послать еще текст до того как клиент прочитал
> это то будут два куска или один?
на этот счет не следует делать никаких предположений - "кусков" может быть и один, и два, и косой десяток ..
важно то, что последовательность отправляемых данных в точности соответствует последовательности принимаемых данных
иными словами, если передатчик выполняет, например
sendtext("ABCD")
sendtext("EFGH")
то приемник может получить и
AB
CDE
F
GH
и
AB
C
D
E
FG
H
и любую иную комбинацию "кусков"
временная последовательность передачи данных в точности соответствует временной последовательности приема передаваемых данных
← →
AngelOKES (2004-06-22 08:06) [10]Удалено модератором
← →
Digitman © (2004-06-22 08:12) [11]
> AngelOKES
функция winsock.accept() при успешном выполнении записывает по адресу, переданному 2-м параметром, данные со структурой TSockAddr, одно из полей которой содержит IP-адрес клиента
← →
AngelOKES (2004-06-22 08:32) [12]Можно поподробнее
← →
Digitman © (2004-06-22 08:42) [13]
> AngelOKES (22.06.04 08:32) [12]
куда уж подробнее ..
открываешь справку для ф-ции accept(), читаешь описание параметров, далее открываешь модуль winsock.pas, ищешь декларацию структуры TSockAddr - и все как на ладони ...
← →
AngelOKES (2004-06-22 10:19) [14]Спасибо за ответ, но я нашел способ попроще:
IpClient:=Socket.RemoteAddress; Возвращает IP клиента
IpServer:=Socket.LocalAddress; Возвращает IP сервера
← →
Digitman © (2004-06-22 10:27) [15]
> AngelOKES
ну ты странный товарисч, однако ...
> Подскажите как сервер
> нашел способ попроще
ты считаешь, что все вокруг должны с полуслова догадываться о том, ЧТО ты подразумеваешь под "сервером" ? Или для тебя не существует никакого иного "сервера", кроме как TServerSocket-компонент ?
← →
AngelOKES (2004-06-22 11:04) [16]Удалено модератором
← →
McZim © (2004-06-28 12:13) [17]вот тебе нормальный сендер по отсылке мессаг по сокетам, но и он не запомнит:
procedure TForm1.Button1Click(Sender: TObject);
begin
{Если соединение уже установлено - прерываем его.}
if ClientSocket1.Active then begin
ClientSocket1.Close;
Exit; {...и выходим из обработчика}
end;
{Присваиваем свойствам Host и Port нужные значения}
ClientSocket1.Host := Edit1.Text;
ClientSocket1.Port := StrToInt(Edit2.Text);
{Пытаемся открыть сокет и установить соединение}
ClientSocket1.Open;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
{Как только произошло соединение - посылаем приветствие}
Socket.SendText("Hello!");
ListBox1.Items.Add("< Hello!");
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
{Если пришло сообщение - добавляем его в ListBox}
ListBox1.Items.Add("> "+Socket.ReceiveText);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
{Нажата кнопка - посылаем текст из третьего TEdit}
ClientSocket1.Socket.SendText(Edit3.Text);
ListBox1.Items.Add("< "+Edit3.Text);
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.04 c