Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Delphi Экспорт данных в Excel http://www.cyberforum.ru/delphi-beginners/thread1477306.html
Здравствуйте, уважаемые программисты. Помогите, пожалуйста, с программой: нужно, чтобы данные из формы выводились в Excel. Каждый раз пишет ошибку. Вот архив программы. В чем может быть ошибка?...
Delphi Название папки Требуется найти название папки из другой директории, допустим C:\Program Files (x86)\BandiMPEG1 Нужно пихануть название папки в Edit1 но это уже совсем другая история. http://www.cyberforum.ru/delphi-beginners/thread1477294.html
Delphi При нажатии Alt перестает работать скролл
На формах с автоскроллом при нажатии кнопки Alt скролл перестает работать. Прокрутка скролла колесом мыши стоит на соотв. событии. procedure TfTest.FormMouseWheel(Sender: TObject; Shift:...
Запаковать в архив файлы из memo Delphi
После запуска программы в memo появляются ссылки на файлы, их всегда разное кол-во. Как запаковать в архив все эти файлы?
Delphi Play video http://www.cyberforum.ru/delphi-beginners/thread1477078.html
Требуется воспроизвести в программе видео в panel с помощью нажатия кнопки или других компонентов.Как это сделать?
Delphi Расстановка кораблей на поле "Морского боя" И снова здрасьте)) Как можно сделать, чтобы, когда я расставляю корабли на поле в морском бое, сначала корабли как бы двигались по полю при перемещении мыши и после этого ставить их на выбранное... подробнее
Eugenerock
0 / 0 / 0
Регистрация: 24.05.2015
Сообщений: 11
0

Socket, TCP, UDP

15.06.2015, 11:55. Просмотров 753. Ответов 0
Метки (Все метки)

Доброго времени суток! В общем, ситуация следующая: там где выделено жирным курсивом надо прописать сообщение для отправки (string, real, integer и бинарные - естественно не все сразу, что-то одно). После получения сервер должен отправить полученное сообщение назад для проверки. Не понимаю как это реализовать.
Знающие гуру, подскажите.

Пишется на Socket, UDP, TCP. Покажите хотя бы пример и расстолкуйте все, пожалуйста. Дело очень срочное...


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.SendBtnClick(Sender: TObject);
var t1, t2,t3: TTime;
i,n,g,k:Integer;
ft:TextFile;
begin
 t1:=Now; 
t2:=t1; 
n:=100;
  AssignFile(ft,'Test.txt');
  Rewrite(ft);
  while   t2-t1<0.0005   do
  begin
    t3:=Now;
      [B][I]for i :=1 to n do
      begin
       k:=0;
       for g:=1 to 1000000 do Inc(k);
       if k<0 then Break;
      end;[/I][/B]
     t2:=Now;
     Writeln(ft, TimeToStr(t2-t3)+'   n='+inttostr(n));
     n:=n+100;
  end;
  CloseFile(ft);
end;
Добавлено через 16 часов 19 минут
Не совсем корректно выразилась. Идея вот в чем. Есть многопользовательский чат, написанный через TServerSocket и TClientSocket. По нажатии отправить: серверу отправляется кусок текста (определенного объема). В файл Test.txt записывается время и количество раз сколько данное сообщение было отправлено за определенный промежуток времени. Мне необходимо достичь такого результата, чтобы при отправке сообщения (естественно объем сообщения мы увеличиваем с каждой попыткой) программа выдала ошибку, чтоб не может передать данный объем информации за это время.
Вопрос в том как это реализовать. Не могу понять. Время в файле перестало считаться, только количество отправки.

Вот код всей процедуры:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
procedure TForm1.SendBtnClick(Sender: TObject);
var t1, t2,t3: TTime;
i,n,g,k:Integer;
ft:TextFile;
begin
// проверка, в каком режиме находится программа
If ServerSocket.Active=True then
// отправляем сообщение с сервера всем пользователям
For i:=0 to ServerSocket.Socket.ActiveConnectio ns-1 do
ServerSocket.Socket.Connections[i].SendText('0['+TimeToStr(Time)+'] '+NikEdit.Text+': '+TextEdit.Text)
else
t1:=Now; t2:=t1; n:=1;
AssignFile(ft,'Test.txt');
Rewrite(ft);
while t2-t1<0.0005 do
begin
t3:=Now;
for i :=1 to n do
begin
TextEdit.Text:='Вы снова здесь, изменчивые тени,\ Меня тревожившие с давних пор,\'
+'Найдется ль конец вам воплощение,\ Или остыл мой молодой задор?\ Но вы, как дым, надвинулись, ведения\'
+'Туманом мне застлавши кругозор.\ Ловлю дыханье ваше грудью всею\ И возде вас душою молодею.\'
+'Вы воскресили прошлого картины,\ Былые дни, былые вечера.\ Вдали всплывает сказкою старинной\'
+'Любви и дружбы первая пора.\ Пронизанный до самой сердцевины\ Тоской тех лет и жаждою добра,\'
+'Я всех, кто жил в тот полдень лучезарный\ Опять припоминаю благородно.\ Им, не услышать следующих песен'
+'Кому я предыдущие читал.\ Распался круг, который был так тесен,\ Шум первых одобрений отзвучал.\'
+'Непосвященных голос легковесен,\ И, признаюсь, мне страшно их похвал,\ А прежние ценители и судьи\'
+'Рассеялись, кто где, среди безлюдья.'
end;
t2:=Now;
Writeln(ft, TimeToStr(t2-t3)+' n='+inttostr(n));
n:=n+1;
// отправляем сообщение с клиента
ClientSocket.Socket.SendText('0['+TimeToStr(Time)+'] '+NikEdit.Text+': '+TextEdit.Text);
// отобразим сообщение в ChatMemo
ChatMemo.Lines.Add('['+TimeToStr(Time)+'] '+NikEdit.Text+': '+TextEdit.Text);
// очищаем TextEdit
TextEdit.Clear;
end;
CloseFile(ft);
end;
Понимаю, что ошибка просто решается, но видимо у меня не хватает знаний...

Добавлено через 3 часа 24 минуты
Скорее всего одна из ошибок кроется в оформление цикла с отправкой текста (строка 20). Но как именно оформить этот цикл - понятия не имею...

Добавлено через 20 часов 50 минут
ПРОБЛЕМА БЫЛА РЕШЕНА!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
procedure TForm1.SendBtnClick(Sender: TObject);
var t1, t2,t3: TTime;
i,n,g,k:Integer;
ft:TextFile;
begin
  If ServerSocket.Active=True then
    For i:=0 to ServerSocket.Socket.ActiveConnections-1 do
    ServerSocket.Socket.Connections[i].SendText('0['+TimeToStr(Time)+']  '+NikEdit.Text+':  '+TextEdit.Text)
  else
  t1:=Now; t2:=t1; n:=100;
  AssignFile(ft,'Test.txt');
  Rewrite(ft);
  while   t2-t1<0.0023   do
  begin
     t2:=Now;
 
     for i :=1 to n do
     begin
         TextEdit.Text:='OPC is the interoperability standard for the secure and reliable exchange of data in the industrial automation space and in other industries.'
        +'It is platform independent and ensures the seamless flow of information among devices from multiple vendors. The OPC Foundation is responsible for the development and maintenance of this standard.'
        +'The OPC standard is a series of specifications developed by industry vendors, end-users and software developers.'
        +'These specifications define the interface between Clients and Servers, as well as Servers and Servers, including access to real-time data, monitoring of alarms and events, access to historical data and other applications.'
        +'When the standard was first released in 1996, its purpose was to abstract PLC specific protocols (such as Modbus, Profibus, etc.) into a standardized interface allowing HMI/SCADA systems to interface with a “middle-man” who would'
        +'convert generic-OPC read/write requests into device-specific requests and vice-versa. As a result, an entire cottage industry of products emerged allowing end-users to implement systems using best-of-breed products all seamlessly interacting'
        +'via OPC. Initially, the OPC standard was restricted to the Windows operating system. As such, the acronym OPC was borne from OLE (object linking and embedding) for Process Control. These specifications, which are now known as OPC Classic,'
        +'have enjoyed widespread adoption across multiple industries, including manufacturing, building automation, oil and gas, renewable energy and utilities, among others. With the introduction of service-oriented architectures in manufacturing'
        +'systems came new challenges in security and data modeling. The OPC Foundation developed the OPC UA specifications to address these needs and at the same time provided a feature-rich technology open-platform architecture that was future-proof,'
        +'scalable and extensible. These are just some of the reasons why so many members and other technology organizations (collaborations) are turning to OPC UA for their interoperability platform.';
        ClientSocket.Socket.SendText('0['+TimeToStr(Time)+']  '+NikEdit.Text+':  '+TextEdit.Text);
        ChatMemo.Lines.Add('['+TimeToStr(Time)+']  '+NikEdit.Text+':  '+TextEdit.Text);
     end;
    t3:=Now;   Writeln(ft, TimeToStr(t2-t3)+'   n='+inttostr(n));
     n:=n+100;
    TextEdit.Clear;
  end;
  CloseFile(ft);
end;


Вернуться к обсуждению:
Socket, TCP, UDP
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2015, 11:55
Готовые ответы и решения:

udp socket косяки при получении данных
всем привет. использую udpsocket UdpSocket1.Sendln('hello',''); //посылаем...

Если сервер TCP то и клиент тоже должен быть TCP?
Я полный новичок И я так понимаю есть TCP client (Sockets), TCP server...

UDP
Интерисует как в Delphi отсылать UDP пакеты например на сайт? или между...

IP UDP
привет народ. Кто нибудь знает как написать процедуру поиска IP и UDP(TCP)...

Определить занятые udp порты.
Как можно определить какие udp порты заняты и к каждому узнать какой процесс...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru