delphi 7中tcpserver 和 tcpclient的运用
首先我要说明我是一个新手其次是这个很诡异的问题tcpclient1.Active:=true;tcpclient1.Sendln('getin');iftcpclient...
首先我要说明我是一个新手
其次是这个很诡异的问题
tcpclient1.Active:=true;
tcpclient1.Sendln('get in');
if tcpclient1.Connect then
showmessage(tcpclient1.Receiveln)
else showmessage('dead');
tcpclient1.Active:=false;
-------客户端-------
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
begin
if clientsocket.Receiveln()='get in' then
begin
inc(allpeople);
tcpserver1.Sendln(inttostr(allpeople));
end;
end;
-------服务端-----
单步跟踪显示server1.sendln是运行的了
但是客户端showmessage了一个''。。。
而且我while true do if client.Receiveln<>'' then break;
它居然没跳出!
。。。。
求解 还有求解各项event用法
onconnect是不是只要连接了就会运行 还是那边传输了才会运行?
网上那些try 和finnal怎么用
procedure TForm1.btnSendClick(Sender: TObject);
var
I: Integer;
begin
TcpClient1.RemoteHost := edtRemoteHost.Text; //服务器IP
TcpClient1.RemotePort := edtRemotePort.Text; //服务器端口号
try
if TcpClient1.Connect then
for I := 0 to memSend.Lines.Count - 1 do
TcpClient1.Sendln(memSend.Lines[I]);
finally
TcpClient1.Disconnect;
end;
end;
求解释
谢谢! 展开
其次是这个很诡异的问题
tcpclient1.Active:=true;
tcpclient1.Sendln('get in');
if tcpclient1.Connect then
showmessage(tcpclient1.Receiveln)
else showmessage('dead');
tcpclient1.Active:=false;
-------客户端-------
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
begin
if clientsocket.Receiveln()='get in' then
begin
inc(allpeople);
tcpserver1.Sendln(inttostr(allpeople));
end;
end;
-------服务端-----
单步跟踪显示server1.sendln是运行的了
但是客户端showmessage了一个''。。。
而且我while true do if client.Receiveln<>'' then break;
它居然没跳出!
。。。。
求解 还有求解各项event用法
onconnect是不是只要连接了就会运行 还是那边传输了才会运行?
网上那些try 和finnal怎么用
procedure TForm1.btnSendClick(Sender: TObject);
var
I: Integer;
begin
TcpClient1.RemoteHost := edtRemoteHost.Text; //服务器IP
TcpClient1.RemotePort := edtRemotePort.Text; //服务器端口号
try
if TcpClient1.Connect then
for I := 0 to memSend.Lines.Count - 1 do
TcpClient1.Sendln(memSend.Lines[I]);
finally
TcpClient1.Disconnect;
end;
end;
求解释
谢谢! 展开
1个回答
展开全部
procedure TForm1.TcpServer1Accept(Sender: TObject;
里面也是死循环来处理消息。直到你终止。
while ClientSocket.connected do
tcpclient1 也是类似的,用单独的线程死循环来处理接收的消息。 只有发送消息就无所谓
里面也是死循环来处理消息。直到你终止。
while ClientSocket.connected do
tcpclient1 也是类似的,用单独的线程死循环来处理接收的消息。 只有发送消息就无所谓
更多追问追答
追问
还能不能更详细些。。。或者代码 event里到底是干啥的。。。50分不想乱给请谅解!
追答
TcpServer1Accept 这个是服务端的组件接收到有客户端连接进入时(且TCP连接成功),就会触发这个事件,并且把,当时连接进入的ClientSocket提供出来,进行后续的处理。
btnSendClick 这个就是界面上点击一个按钮时,应该执行的代码。
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询