Главная страница
    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.025 c
6-1087541335
Furyous
2004-06-18 10:48
2004.08.29
Нужно отправить файл от клиента к клиенту через сервер.


3-1091482426
GanibalLector
2004-08-03 01:33
2004.08.29
gdselected in state в DBGridEh (от EhLib)


14-1092152422
redlord
2004-08-10 19:40
2004.08.29
назначение удаленных прав доступа в XP


1-1092642509
EHFS
2004-08-16 11:48
2004.08.29
Список файлов


1-1092208083
Coder: TCoder;
2004-08-11 11:08
2004.08.29
Записи(record)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский