Arkadaşlar birtane Chat projesi yaptım herşey tamam
yalnız client server socketlerinde bir durum var
ben chat sunucusu için modemin 1555 portunu açtım
clientlerede 1555 port atadım
kullandığım serversocket Chat sunucusu ve Admin olacak...
client socketler ise kulanıcılar olacak
bağlantı olayında 1 kişi ile sorun yaşamıyorum
ama bağlantıda 2 kişi client socket ile bendeki serversocketin 1555 portuna bağlandığında daha önce kim bağlanmışsa onun yazdıklarını görebiliyorum
diğerleri (clientler) bağlanamadı hatası alıyor
bunun sebebi nedir ?
serversocket portu , sadece birtane Clientin bağlanmasınamı izin veriyor acaba? ondanmıdır?
eğer bu yüzdense bunun çözümü nedir?
serversocket sadce 1 clientlemi bağlantı kurabiliyor ?
varsa componenti nedir
yada bu işin çözümü ne olabilir,
aklımda şimdilik timere ekleyeceğim clients IP disconnect yaptırma çözümü var ama bakalım nasıl çıkacam bu işin içinden
teşekkürler...
Clientsocket Serversocket Yardım
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Clientsocket Serversocket Yardım
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
Arkadasım donguyle halledebilirsin
Kod: Tümünü seç
var
i:integer;
text : string;
begin
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
with ServerSocket1.Socket.Connections[i] do
begin
text := ReceiveText;
if text <> '' then
begin
Memo1.Lines.Add(RemoteAddress + ' sends :';
Memo1.Lines.Add(text);
end;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
showmessage('Dehanın %1 i ilham %99u terdir.');
end;
end.
begin
showmessage('Dehanın %1 i ilham %99u terdir.');
end;
end.
Olmuyor ya
arkadaşlar hata nerde ben bulamadım
Server socketin send text özelliğini kullanarak clientsockete veri göndermek istiyorum ama clientsocket alıp memo1e yazması gerekiyor onuda yapmıyor
birde yukarıdaki döngü kodlarını ekleyerek denedim
çoklu clientler yine bağlanmıyor
prosedür önceliği diye birşey varmı Delphide
yani önce yazılan prosedürün daha erken işletilmesi gibi bir durumda sonra gelen kodların işlevsel olma özelliği
delphinin dezavantajı olabilir...
Server socketin send text özelliğini kullanarak clientsockete veri göndermek istiyorum ama clientsocket alıp memo1e yazması gerekiyor onuda yapmıyor
birde yukarıdaki döngü kodlarını ekleyerek denedim
çoklu clientler yine bağlanmıyor
prosedür önceliği diye birşey varmı Delphide
yani önce yazılan prosedürün daha erken işletilmesi gibi bir durumda sonra gelen kodların işlevsel olma özelliği
delphinin dezavantajı olabilir...
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
Memo1: TMemo;
Button2: TButton;
Edit2: TEdit;
Memo2: TMemo;
Button3: TButton;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button3Click(Sender: TObject);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Host:=edit1.Text;
clientsocket1.Active:=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
clientsocket1.Socket.SendText(edit2.Text);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
serversocket1.Port:=strtoint('1555');
serversocket1.Active:=true;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
i:integer;
text : string;
begin
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
with ServerSocket1.Socket.Connections[i] do
begin
text := ReceiveText;
if text <> '' then
begin
Memo2.Lines.Add(text);
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
serversocket1.Active:=true;
serversocket1.Socket.SendText(edit3.Text) ;
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add(socket.ReceiveText());;
end;
end.
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;