baran_2005
سه شنبه 19 بهمن 1389, 13:18 عصر
سلام
من یک برنامه میخوام بنویسم که خیلی ساده فقط پیام به شخصی در شبکه محلی ارسال و به محض ارسال اون شخص روی صفحه خودش مشاهده کند . در مورد برنامه های چت جستجو کردم همه دارای مشکل بودن و بعد از یک مدت که باز هستن به خطا میخورن .
الان از دو تا کامپوننت tcpclient و tcpserver استفاده کردم .ed_line اسم edit که پیام مینویسم و ChatWnd اسم memo که اطلاعات داخلش نمایش داده میشود و Host ادرس ایپی رو وارد میکنم . در رویداد ocaccept شی سرور کد زیر گذاشتم
procedure TFrm_Chat.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
s: string;
begin
s := ClientSocket.Receiveln;
while s <> '' do
begin
ChatWnd.Lines.Add(s);
s := ClientSocket.Receiveln;
end;
end;
و در دکمه برقراری ارتباط کد
procedure TFrm_Chat.BTN_OKClick(Sender: TObject);
begin
try
TcpServer1.Active := False;
TcpServer1.LocalPort := '8080';
TcpServer1.Active := True;
ED_Line.Enabled :=true;
except
showmessage('برقراری ارتباط ناموفق');
end;
end;
و در دکمه ارسال پیام کد
procedure TFrm_Chat.BTN_ReturnClick(Sender: TObject);
begin
TcpClient1.RemoteHost := Host.Text;
TcpClient1.RemotePort := '8080';
try
if TcpClient1.Connect then
TcpClient1.Sendln(ED_Line.Text);
ChatWnd.Lines.Add (' من : '+ ED_Line.Text);
finally
TcpClient1.Disconnect;
end;
end;
مشکلات این برنامه کوچک :
این برنامه باید هم زمان دوتا کاربر به هم کانکت باشن و از حضور هم مطلع
مهمترین مشکل این که از یک کلمه بیشتر تایپ کنی بقیه کلمات نامفهوم ارسال میشن یا اصلا ارسال نمیشن
اگر دوستان در این زمینه راهنمای کنن ممنون میشم.
من یک برنامه میخوام بنویسم که خیلی ساده فقط پیام به شخصی در شبکه محلی ارسال و به محض ارسال اون شخص روی صفحه خودش مشاهده کند . در مورد برنامه های چت جستجو کردم همه دارای مشکل بودن و بعد از یک مدت که باز هستن به خطا میخورن .
الان از دو تا کامپوننت tcpclient و tcpserver استفاده کردم .ed_line اسم edit که پیام مینویسم و ChatWnd اسم memo که اطلاعات داخلش نمایش داده میشود و Host ادرس ایپی رو وارد میکنم . در رویداد ocaccept شی سرور کد زیر گذاشتم
procedure TFrm_Chat.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
s: string;
begin
s := ClientSocket.Receiveln;
while s <> '' do
begin
ChatWnd.Lines.Add(s);
s := ClientSocket.Receiveln;
end;
end;
و در دکمه برقراری ارتباط کد
procedure TFrm_Chat.BTN_OKClick(Sender: TObject);
begin
try
TcpServer1.Active := False;
TcpServer1.LocalPort := '8080';
TcpServer1.Active := True;
ED_Line.Enabled :=true;
except
showmessage('برقراری ارتباط ناموفق');
end;
end;
و در دکمه ارسال پیام کد
procedure TFrm_Chat.BTN_ReturnClick(Sender: TObject);
begin
TcpClient1.RemoteHost := Host.Text;
TcpClient1.RemotePort := '8080';
try
if TcpClient1.Connect then
TcpClient1.Sendln(ED_Line.Text);
ChatWnd.Lines.Add (' من : '+ ED_Line.Text);
finally
TcpClient1.Disconnect;
end;
end;
مشکلات این برنامه کوچک :
این برنامه باید هم زمان دوتا کاربر به هم کانکت باشن و از حضور هم مطلع
مهمترین مشکل این که از یک کلمه بیشتر تایپ کنی بقیه کلمات نامفهوم ارسال میشن یا اصلا ارسال نمیشن
اگر دوستان در این زمینه راهنمای کنن ممنون میشم.