关于TClientSocket与TServerSocket的基础问题
简单代码如下
- Delphi(Pascal) code
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, GetErrorPro;type TForm1 = class(TForm) btn1: TButton; Memo1: TMemo; ClientSocket1: TClientSocket; ServerSocket: TServerSocket; procedure btn1Click(Sender: TObject); procedure ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btn1Click(Sender: TObject);begin ClientSocket1.Address:='10.143.107.58'; ClientSocket1.Port:=80; ClientSocket1.Active:=True; ClientSocket1.Socket.SendText('111'); ErrorPro;end;//------------------------------------------procedure TForm1.ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket);begin Memo1.Lines.Add(Socket.ReceiveText);end;end.但是在最后却报10061错误,不管我把ServerSocket的active设为真和假都一样
是什么地方出了问题?
[解决办法]
换一个端口试试. 80端口是有特殊用途的
[解决办法]
(10061)
Connection refused.
No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host - i.e. one with no server application running.
*******************************************************
10061错误是指没有启动服务器或者说服务器没有处于监听状态(即ServerSocket->Active!=true,此时当你在客户端试图用ClientSocket->Active=true进行连接时就会被告知“目标机器积极拒绝连接")
[解决办法]
既然是本机+同一进程测试, 你把IP改成127.0.0.1试一下.
我用你的程序, IP 127.0.0.1 Port 3380 测试成功
[解决办法]
上面说的意思是你的服务程序没启动吧