读书人

关于TClientSocket与TServerSocket的基

发布时间: 2012-02-19 19:43:38 作者: rapoo

关于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 测试成功
[解决办法]
上面说的意思是你的服务程序没启动吧

读书人网 >.NET

热点推荐