PDA

View Full Version : چه طوری میشه از tserversocket به tclientsocket پیام فرستاد(خیلی فوری)



djscsi
شنبه 11 خرداد 1387, 17:41 عصر
چه طوری میشه از tserversocket به tclientsocket پیام فرستاد؟
منظورم اینه که مثلا در مورد client میتونیم بهش بگیم که socket.remotehost:='192.168.10.22' ولی در مورد برعکسش چطور ؟
من remoteaddress رو هم امتحان کردم جواب نداد
من میخام ادرس رو مثلا 192.168.10.20 توی یه edit بنویسم و به همون ادرس پیام فرستاده بشه
ودفعه بعد ادرس 192.168.10.20 توی یه edit بنویسم و به این ادرس پیام فرستاده بشه
ممنون

hafeza
شنبه 11 خرداد 1387, 19:09 عصر
salam doste aziz
man ba clientsocket,server socket in karo kardam faghat ba local host tonestam emtehan konam ke javab dade
fekr konam age ip server vojod dashtebashe va to ba ip server cliento set koni javab begiri in codo emtehan kon
code

client:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,WinSock, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
err:Integer;
WSAData :TWSAData ;
sock,SOCK2:TSocket;
SinServer : SockAddr_in ;
implementation
{$R *.dfm}
procedure Mys(str: String);
var
I: Integer;
begin
for I:=1 to Length(str) do
begin
Err :=send(sock,str[i],1,0);
end;
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
err:= WSAStartup(MakeWord(1,1),WSAData);
SOCK :=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
ZeroMemory(@sinServer, sizeof(SinServer));
sinServer.sin_family := AF_INET;
sinServer.sin_port := htons(1010);
SinServer.sin_addr.S_addr:=inet_addr('127.0.0.1');
SOCK2 := Connect( SOCK,SinServer,sizeof(SinServer));
Mys(edit1.text);
closesocket(Sock);
err := WSACleanup;
end;
end.



server

unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Sockets, StdCtrls;
type
TForm2 = class(TForm)
TcpServer1: TTcpServer;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
TcpServer1.Active:=True;
end;
procedure TForm2.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
s:string;
begin
s:=ClientSocket.Receiveln();
Edit1.Text:=s;
end;
end.

dar zemn bayad componentesho ke to khode delphi hast instal koni
dclsockets70.bpl
age eshkali to ersale pasokham hast khodeton be bozorgito bebakhshid

djscsi
یک شنبه 12 خرداد 1387, 10:51 صبح
ممنون دوست عزیز
ولی این با idtcpclientو idtdpserver هست
من با tserversocket و tclientsocket کار میکنم
منتظر کمک همه دوستان هستم

djscsi
یک شنبه 12 خرداد 1387, 17:51 عصر
شاید سوالمو بد پرسیدم
اقا شما به client یه ip میدید و میگید که این server هست (با دستور'ادرس سرور'=: clientsocket.socket.localhost)
حالا من می خام یه ip به server بدم و بگم که این clientه فکر کردم با دستور serversocket.socket.localaddress یا serversocket.socket.localip میشه ولی اینا نبود
ممنون میشم راهنمایی کنید

p_zare
دوشنبه 18 آبان 1388, 09:42 صبح
شاید سوالمو بد پرسیدم
اقا شما به client یه ip میدید و میگید که این server هست (با دستور'ادرس سرور'=: clientsocket.socket.localhost)
حالا من می خام یه ip به server بدم و بگم که این clientه فکر کردم با دستور serversocket.socket.localaddress یا serversocket.socket.localip میشه ولی اینا نبود
ممنون میشم راهنمایی کنید

عزیزم اونوقت جایه کلاینت و سرور با هم عوض میشه ... تویه هر برنامت یه سرور و یه کلاینت بزار
چاو