CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

关于TClientSocket与TServerSocket的简单问题

楼主LogoGEN(流氓)2003-12-03 09:59:00 在 Delphi / 网络通信/分布式开发 提问

我用一对TClientSocket与TServerSocket实现从a程序到b程序的传输,完全没问题。但用另一对TClientSocket与TServerSocket实现b到a的传输时onClientRead却不能获取任何信息,但onClientConnect却能捕捉到连接。请高手指教。 问题点数:50、回复次数:22Top

1 楼LogoGEN(流氓)回复于 2003-12-03 12:32:18 得分 0

自己up一下~~Top

2 楼soundbug(兼职乞丐)回复于 2003-12-03 13:27:24 得分 0

两个程序之间是否有代理服务器或防火墙?Top

3 楼XKP(低等下人)回复于 2003-12-03 13:30:00 得分 5

绝世好upTop

4 楼liunini(妮妮)回复于 2003-12-03 13:39:17 得分 0

upTop

5 楼LogoGEN(流氓)回复于 2003-12-03 13:47:51 得分 0

没有啊代理`~~  
   
  就在本机运行,只是用了不同端口Top

6 楼soundbug(兼职乞丐)回复于 2003-12-03 14:11:21 得分 10

有些断口是系统已经定义号的,请注意你的端口号。换个端口试试Top

7 楼XKP(低等下人)回复于 2003-12-03 14:14:23 得分 0

upTop

8 楼halfdream(哈欠)回复于 2003-12-03 17:36:57 得分 10

阻塞方式下onClientRead是不起作用的.Top

9 楼LogoGEN(流氓)回复于 2003-12-03 20:15:36 得分 0

我的servertype   =   stNonBlocking。我换过端口,但还是没变化,我觉得如果端口不能用onClientConnect应该不能捕捉到连接!Top

10 楼jerryhrm(浪尽天涯)回复于 2003-12-03 21:02:47 得分 0

我在7.0怎么找不到这两个控件的,7.0的两个控件放在哪里啊在哪里啊Top

11 楼jerryhrm(浪尽天涯)回复于 2003-12-03 21:04:44 得分 0

是不是tcpclient和tcpserver呢??Top

12 楼LogoGEN(流氓)回复于 2003-12-03 22:43:42 得分 0

那两个组件好象要安装,以下是别人说的:Menu:   Component/Install   Packages/Add...,选择   Delphi   Bin   文件夹下的   dclsockets70.bpl   文件,在   Internet   面板下就有了。  
   
  我的问题还没解决,英雄们救命啊`~Top

13 楼XKP(低等下人)回复于 2003-12-03 23:33:03 得分 0

upupTop

14 楼liuxingwen(阳光男人)回复于 2003-12-04 09:37:04 得分 0

我没有你那个问题,不过我传过来的信息,出现乱吗  
  up  
  upTop

15 楼trustmeok()回复于 2003-12-04 18:05:47 得分 5

你指的a   和   b   是TClientSocket与TServerSocket  
  还是主机?不同的程序?Top

16 楼seeder(seeder)回复于 2003-12-04 22:19:21 得分 0

如果有两个以上的client联接到server上的时候,都能正常联接成功,但是在server发数据的时候却只能有一个收得到。Top

17 楼solonet(赤岭雄鹰)回复于 2003-12-04 23:54:35 得分 0

TO:   seeder(seeder)   (  
   
  这是通信的线程号不对,所以只能和第一个通信.Top

18 楼LogoGEN(流氓)回复于 2003-12-11 08:42:07 得分 0

如果我一个服务端需要同时给不同IP的客户发送信息,一般是发送完一次后关闭连接然后再建立另一连接,还是可以用两个进程来同时进行发送???Top

19 楼seeder(seeder)回复于 2003-12-11 23:02:18 得分 10

那就用udp方式吧Top

20 楼XKP(低等下人)回复于 2003-12-12 17:23:12 得分 0

路过Top

21 楼CaoChengLu()回复于 2003-12-17 17:28:06 得分 10

本人用   Delphi5   试验如下,可以互相通信。  
  a   程序代码:  
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,  
      StdCtrls,   ScktComp;  
   
  type  
      TForm1   =   class(TForm)  
          ServerSocket1:   TServerSocket;  
          ClientSocket1:   TClientSocket;  
          Button1:   TButton;  
          Memo1:   TMemo;  
          Button2:   TButton;  
          procedure   FormCreate(Sender:   TObject);  
          procedure   ServerSocket1ClientRead(Sender:   TObject;  
              Socket:   TCustomWinSocket);  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
          procedure   ClientSocket1Connect(Sender:   TObject;  
              Socket:   TCustomWinSocket);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.DFM}  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      ServerSocket1.Active   :=   True;  
  end;  
   
  procedure   TForm1.ServerSocket1ClientRead(Sender:   TObject;  
      Socket:   TCustomWinSocket);  
  begin  
      Memo1.Lines.Add(Socket.ReceiveText);  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      ClientSocket1.Active   :=   True;  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
      ClientSocket1.Socket.SendText('From   aaaa');  
  end;  
   
  procedure   TForm1.ClientSocket1Connect(Sender:   TObject;  
      Socket:   TCustomWinSocket);  
  begin  
      memo1.Lines.Add('connected');  
  end;  
   
  end.  
   
  object   Form1:   TForm1  
      Left   =   192  
      Top   =   114  
      Width   =   313  
      Height   =   249  
      Caption   =   'b'  
      Color   =   clBtnFace  
      Font.Charset   =   DEFAULT_CHARSET  
      Font.Color   =   clWindowText  
      Font.Height   =   -11  
      Font.Name   =   'MS   Sans   Serif'  
      Font.Style   =   []  
      OldCreateOrder   =   False  
      OnCreate   =   FormCreate  
      PixelsPerInch   =   96  
      TextHeight   =   13  
      object   Button1:   TButton  
          Left   =   32  
          Top   =   168  
          Width   =   75  
          Height   =   25  
          Caption   =   'Link'  
          TabOrder   =   0  
          OnClick   =   Button1Click  
      end  
      object   Memo1:   TMemo  
          Left   =   24  
          Top   =   24  
          Width   =   249  
          Height   =   121  
          Lines.Strings   =   (  
              'Memo1')  
          TabOrder   =   1  
      end  
      object   Button2:   TButton  
          Left   =   192  
          Top   =   168  
          Width   =   75  
          Height   =   25  
          Caption   =   'Send'  
          TabOrder   =   2  
          OnClick   =   Button2Click  
      end  
      object   ServerSocket1:   TServerSocket  
          Active   =   False  
          Port   =   8888  
          ServerType   =   stNonBlocking  
          OnClientRead   =   ServerSocket1ClientRead  
          Left   =   104  
          Top   =   56  
      end  
      object   ClientSocket1:   TClientSocket  
          Active   =   False  
          ClientType   =   ctNonBlocking  
          Host   =   'ctixp'  
          Port   =   9999  
          OnConnect   =   ClientSocket1Connect  
          Left   =   168  
          Top   =   56  
      end  
  end  
   
  b   程序代码:  
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,  
      StdCtrls,   ScktComp;  
   
  type  
      TForm1   =   class(TForm)  
          ServerSocket1:   TServerSocket;  
          ClientSocket1:   TClientSocket;  
          Button1:   TButton;  
          Memo1:   TMemo;  
          Button2:   TButton;  
          procedure   FormCreate(Sender:   TObject);  
          procedure   ServerSocket1ClientRead(Sender:   TObject;  
              Socket:   TCustomWinSocket);  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
          procedure   ClientSocket1Connect(Sender:   TObject;  
              Socket:   TCustomWinSocket);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.DFM}  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      ServerSocket1.Active   :=   True;  
  end;  
   
  procedure   TForm1.ServerSocket1ClientRead(Sender:   TObject;  
      Socket:   TCustomWinSocket);  
  begin  
      Memo1.Lines.Add(Socket.ReceiveText);  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      ClientSocket1.Active   :=   True;  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
      ClientSocket1.Socket.SendText('From   aaaa');  
  end;  
   
  procedure   TForm1.ClientSocket1Connect(Sender:   TObject;  
      Socket:   TCustomWinSocket);  
  begin  
      memo1.Lines.Add('connected');  
  end;  
   
  end.  
   
   
  object   Form1:   TForm1  
      Left   =   192  
      Top   =   114  
      Width   =   362  
      Height   =   259  
      Caption   =   'a'  
      Color   =   clBtnFace  
      Font.Charset   =   DEFAULT_CHARSET  
      Font.Color   =   clWindowText  
      Font.Height   =   -11  
      Font.Name   =   'MS   Sans   Serif'  
      Font.Style   =   []  
      OldCreateOrder   =   False  
      OnCreate   =   FormCreate  
      PixelsPerInch   =   96  
      TextHeight   =   13  
      object   Button1:   TButton  
          Left   =   80  
          Top   =   168  
          Width   =   75  
          Height   =   25  
          Caption   =   'Link'  
          TabOrder   =   0  
          OnClick   =   Button1Click  
      end  
      object   Memo1:   TMemo  
          Left   =   56  
          Top   =   24  
          Width   =   249  
          Height   =   121  
          Lines.Strings   =   (  
              'Memo1')  
          TabOrder   =   1  
      end  
      object   Button2:   TButton  
          Left   =   208  
          Top   =   168  
          Width   =   75  
          Height   =   25  
          Caption   =   'Send'  
          TabOrder   =   2  
          OnClick   =   Button2Click  
      end  
      object   ServerSocket1:   TServerSocket  
          Active   =   False  
          Port   =   9999  
          ServerType   =   stNonBlocking  
          OnClientRead   =   ServerSocket1ClientRead  
          Left   =   104  
          Top   =   56  
      end  
      object   ClientSocket1:   TClientSocket  
          Active   =   False  
          ClientType   =   ctNonBlocking  
          Host   =   'ctixp'  
          Port   =   8888  
          OnConnect   =   ClientSocket1Connect  
          Left   =   168  
          Top   =   56  
      end  
  end  
  Top

22 楼XKP(低等下人)回复于 2003-12-18 13:37:08 得分 0

upTop

相关问题

  • TServerSocket和TClientSocket问题
  • 关于TClientSocket与TServerSocket连接时的用户验证问题!
  • 关于TClientSocket与TServerSocket连接时的用户验证问题!
  • 有关TServerSocket,TClientSocket.的问题。
  • 在DELPHI7下有TClientSocket、TServerSocket吗?
  • 请教TClientSocket及TServerSocket用法
  • 用TServerSocket和TClientSocket连接后,TServerSocket怎么向TClientSocket发送数据?
  • 请教关于TClientSocket与TServerSocket的基本用法,请大家给我上上课
  • TClientSocket不断尝试与TServerSocket连接,运行一段时间后的问题!
  • TServerSocket/TClientSocket 连接后断开的问题

关键词

  • 端口
  • 连接
  • socket
  • 信息
  • tserversocket
  • tclientsocket
  • tobject
  • tform
  • tcustomwinsocket
  • serversocket

得分解答快速导航

  • 帖主:LogoGEN
  • XKP
  • soundbug
  • halfdream
  • trustmeok
  • seeder
  • CaoChengLu

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo