unit myclientUi;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls , Windows , Winsock;
type
{ TForm1 }
TForm1 = class(TForm)
ListView1: TListView;
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
procedure ReceiveBuf();
var
_wsdata: WSAData;
serverSocket, S: TSocket;
_addrIn, _addr: sockaddr_in;
addrSize: Integer;
SendBuf:Array[0..31] of AnsiChar;
data : Integer;
begin
if WSAStartup(MakeWord(2, 2), _wsdata) <> 0 then
Exit;
serverSocket := socket(AF_INET, SOCK_STREAM, 0);
if serverSocket = INVALID_SOCKET then
Exit;
_addrIn.sin_family := AF_INET;
_addrIn.sin_addr.S_addr := INADDR_ANY;
_addrIn.sin_port := htons(8080);
if bind(serverSocket, _addrIn, SizeOf(_addrIn)) = SOCKET_ERROR then
Exit;
if listen(serverSocket, SOMAXCONN) = SOCKET_ERROR then
Exit;
addrSize := SizeOf(_addrIn);
getsockname(serverSocket, _addrIn, addrSize);
//Writeln(Format('Listening on port %d' + #13#10, [ntohs(_addrIn.sin_port)]));
while True do
begin
S := accept(serverSocket, @_addr, @addrSize);
if S <> INVALID_SOCKET then
begin
repeat
data := recv(s, SendBuf, SizeOf(SendBuf), 0);
if data > 0 then Writeln('Bytes Received: ' + IntToStr(data) + ' Text: ' +SendBuf); // I believe it should save into the Listview From here
until data <= 0;
closesocket(S);
end;
end;
end;
{ TForm1 }
end.