Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
3-1091531793
Valer
2004-08-03 15:16
2004.08.29
Перевод строки (возврат каретки)


1-1092491484
SPeller
2004-08-14 17:51
2004.08.29
Как различить текстовый файл от двоичного?


14-1092116695
Rule
2004-08-10 09:44
2004.08.29
Вот спорю с коллегой на работе, подскажите есть ли множественное


8-1086552781
xman
2004-06-07 00:13
2004.08.29
BITMAP


1-1092384438
sig
2004-08-13 12:07
2004.08.29
Про BackSpase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский