Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Проблема с sockets во free pascal


Автор: MozgZombi 9.2.2015, 18:58
Пытаюсь написать два простых приложения сервер\клиент с помощью юнита sockets на free pascal. При запуске сервера, он ждёт подключения, когда я запускаю клиент, который должен посылать сообщение "test", оба окна закрываются. Перед завершением программы пробовал писать readln();, чтобы проверить, что выводят программы перед выходом, оказалось, что ничего не выводят. 

Вот код сервера:
Код

program serv;

uses
Sockets, crt;

var
S: longint;
SAddr, FromName: TInetSockAddr;
Sin, Sout: text;
Buffer: string[255];

begin
S:=fpSocket(AF_INET, SOCK_STREAM, PF_UNSPEC);
SAddr.sin_family:=AF_INET;
SAddr.sin_port:=shorthosttonet(5000);
//SAddr.sin_addr:=StrToHostaddr('127.0.0.1');
fpbind(S, @SAddr, sizeof(saddr));
fplisten(S, 1);
accept(S, FromName, Sin, Sout);
Reset(Sin);
Rewrite(sout);
Flush(sout);
readln(sin, buffer);
writeln(buffer);
end.



Вот клиент:

Код

program clnt;

uses
sockets, crt;

var
SAddr: TInetSockAddr;
S: longint;
msg: string[255];

begin
S:=fpsocket(AF_INET, SOCK_STREAM, PF_UNSPEC);
SAddr.sin_family:=AF_INET;
SAddr.sin_port:=shorthosttonet(5000);
SAddr.sin_addr:=strtonetaddr('127.0.0.1');
fpconnect(s, @saddr, sizeof(saddr));
msg:='test';
fpsend(s, @msg, sizeof(msg), 1);
end.


Разобраться самому было очень трудно, так как опирался только на документацию, в которой лишь был пример приёма сервром сообщения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)