Форум программистов, компьютерный форум CyberForum.ru

Lazarus

Войти
Регистрация
Восстановить пароль
 
Pinkolik
0 / 0 / 0
Регистрация: 30.05.2015
Сообщений: 14
#1

Работа с сокетами - Lazarus

02.06.2015, 21:23. Просмотров 693. Ответов 3
Метки нет (Все метки)

Здравствуйте, хотелось бы написать внутресетевой чат, понимаю, что изобретаю велосипед, но всё же ради тренировки и опыта. С этим хочу спросить вас: какой пакет лучше использовать для работу с TCP протоколом? Может у lazarus'а хороший встроенный или же какой-то стоит скачать? Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2015, 21:23     Работа с сокетами
Посмотрите здесь:

Работа с сокетами - C++
Где можно прочитать про работу с TCP сокетами в С++? Нужно "посадить" на прослушку программу на определенный порт, и что бы можно было...

Работа с сокетами - C Linux
Доброго времени суток. Изучаю сокеты (linux, bsd, cygwin), в качестве испытательного полигона - создаю программу-чат (наверное, это...

Работа с СОКЕТАМИ! - C++
Помогите пожалусто примерами ответов сервера клиенту по RFC протоколу, хотя бы пару команд обработать (Simple SOCKET-ы я вполне освоил, а...

Работа с сокетами - Java SE
Всем привет! Как можно на Java подключить сокет, например, по такому адресу: 127.0.0.1/api?

Работа с сокетами - PHP Сети
Есть вот такая функция, для отправка GET запроса и получения результата: function ExecuteHTTPGetRequest($url, $deleteAllTags) { ...

Работа с сокетами - C++
как вырубить локальный клиент?

Работа с сокетами - C#
Можно пример кода как можно организовать асинхронный обмен данными с клиент сервер ???

Работа с Сокетами - C++
Добрый день или вечер! Прошу помощи Зависает сервер при подключении клиента до момента подключения второго клиента. Что только не...

Работа с сокетами - C++
Помогите создать приложение клиент - сервер, в Visual Studio 2010 C++, проект Win32 если можно с объяснением как создать проект и куда...

Работа с сокетами - C#
Добрый день. При работе с сокетами использовался следующий набор заголовочников: #include "stdafx.h" //#include "winsock.h" ...

Работа с сокетами - PHP Сети
Здравствуйте, есть проблемка... Есть php код с помощью которого по telnet подключаюсь к маршрутизатору и передаю команды, но как только в...

Работа с сокетами - Java SE
Доброго времени суток, помогите пожалуйста, 2 дня уже убил на поиск решения - не могу больше. :wall: Проблема: Есть приложение и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shyub
222 / 107 / 25
Регистрация: 11.07.2013
Сообщений: 627
03.06.2015, 11:15     Работа с сокетами #2
Посмотрите в сторону компонентов Indy. Недавно обсуждалась эта тема: Отправка письма на почту
PolarFoG
NPC
148 / 148 / 10
Регистрация: 10.01.2012
Сообщений: 393
03.06.2015, 12:44     Работа с сокетами #3
Или Synapse Получение данных через сокет, используя Synapse
По мне так Indy слегка глюченый пакет библиотек
programmeur
0 / 0 / 0
Регистрация: 25.11.2016
Сообщений: 3
11.01.2017, 00:21     Работа с сокетами #4
Вопрос по Sockets (FPC)

Код:
Pascal
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
42
43
44
45
procedure THTMLInterface.execute;
var
    sizeofSockAdr:longint;
    Addr: TInetSockAddr;
begin
     //create socket
     sock:=fpSocket(AF_INET,SOCK_STREAM,0);
     if SocketError=0 then
     begin
       writeln('Сокет создан......ok');
 
       Addr.sin_family:=AF_INET;
       Addr.sin_port:=htons(8000);
       Addr.sin_addr.s_addr:=HostToNet((127 shl 24) or 1); //127.0.0.1
 
       sizeofSockAdr:=sizeof(Addr);
 
       if fpBind(sock,@Addr,sizeofSockAdr)=-1 then
       begin
         writeln('127.0.0.1:8000 уже занят! Стоп.');
       end
       else
         if fpListen(sock,1)=-1 then
          writeln('Ошибка ожидания')
         else
         begin
           writeln('Ожидание клиентов 127.0.0.1:8000');
 
           sock:=fpaccept(sock,@Addr, @sizeofSockAdr);
 
           if (sock=-1) then writeln('ошибка соединения')
                        else writeln('клиент подсоеденился');
 
            setlength(SBufer,1024);
           while (sock<>-1) do
              writeln(fprecv(sock,@SBufer[0],1024,0));
              writeln('End of message');
              sleep(5000);
           end;
 
 
          sockets.CloseSocket(sock);
          writeln('Сокет закрыт');
         end;
end;
Сокет создается, клиент (браузер / wget) соединяется, а дальше творится непонятное
Проблема в том, что не исполняется код после fprecv(sock,@SBufer[0],1024,0); Он выводит количество прочитаных байт (как и положено), а дальше ступор. Что не так?

---
Причем если буфер меньше объема данных, то он читает несколько раз пока все не прочтет - а далее то же самое
Yandex
Объявления
11.01.2017, 00:21     Работа с сокетами
Ответ Создать тему
Опции темы

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