| liuyax
                  
                  22778
                   | 
              2006/4/10 8:48:36 | 
            
            
              因为开始我使用了Idclient,所以自动会加入引用单元,后来改为IdServer,忘记删掉引用的idClient。 ABinding.SendTo为监听端口发送数据时使用,client的监听端口只接收数据,接收后并不立即返回信息。只在需要向其它用户发送消息的时候调用SendBuffer发送数据,这时用的不是监听的端口,是应用程序自动分配的端口,不能用ABinding.Sendto,这是监听端口发送数据。 | 
            
            
            
              | jojozzf
                  
                  22756
                   | 
              2006/4/8 20:31:27 | 
            
            
              哦,好的,我试者编写一下程序~ 问题又来了,呵呵: 1、我上网浏览Delphi网络编程时发现大家讨论的一个问题: IdUDPServer控件不能使用IdUDPServer.SendBuffer发送数据,发送数据应该用ABinding.SendTo,对此你的看法是什么?用IdUDPServer.SendBuffer发送数据会出现什么问题吗? 2、在Client端程序中,没有用到TIdUDPClient,你在uses中加IdUDPClient的用意是什么? 期待你的解答~~~~~~~谢谢! | 
            
            
            
              | liuyax
                  
                  22744
                   | 
              2006/4/8 8:44:02 | 
            
            
              | 服务器端的广播很好实现,遍历每个在线用户,分别发送消息就可以了。 | 
            
            
            
              | jojozzf
                  
                  22734
                   | 
              2006/4/7 15:34:36 | 
            
            
              谢谢你的解答,我会根据你的回答再仔细去学习程序。 我想要是在Server端也实现聊天功能,直接在Server端打开Client.exe就可以参加聊天了呵呵。我还有个想法,能不能把程序改动,使服务器端管理员可以跟所有在线的人员广播消息(如通知)? | 
            
            
            
              | liuyax
                  
                  22727
                   | 
              2006/4/7 13:53:47 | 
            
            
              msg.info是一个长度为1024的字符数组,用来存储消息内容,当一个client登录时,从server发给这个client的msg.info中存放当前在线用户的列表,根据msg.msgtype判断当前消息内容是登录、注销、还是其它聊天等类型。 当一个client登录以后,它的信息会被保存在server端的Listview用户列表中,server端根据GetOnlineList这个函数从Listview列表中逐个生成string类型的用户列表信息。发送给每个用户,以方便各个client更新在线用户列表。 | 
            
            
            
              | jojozzf
                  
                  22719
                   | 
              2006/4/7 9:45:04 | 
            
            
              呵,今天早上又在研究你的程序了,我的问题是: 客户端的代码中 procedure TfrmMain.UDPClientUDPRead(Sender: TObject; AData: TStream;   ABinding: TIdSocketHandle);过程中  OnlineList:= msg.info; //是把聊天信息内容msg.info赋值给OnlineList吧  ParseList(OnlineList); //OnlineList中的内容传递给ParseList()函数 msg.info是MsgInfo记录类型的一个分量,是指传递的聊天内容吗?那它怎么能赋值给OnlineList,而且怎么体现出它的内容是字符串把每个用户用‘;’分割,一个用户的信息项用‘,’分割??
  真不好意思,一直问了这么多问题。。。期待你的解答,谢谢 | 
            
            
            
              | jojozzf
                  
                  22703
                   | 
              2006/4/6 21:13:09 | 
            
            
              嗯!明白了!真的谢谢你了! 我还有问题…… 1.在编写客户端程序时,传建了Config.ini文件,从代码看来,它的作用是记录用户登录的昵称和服务器地址信息,要是不用这个方法可以吗? 2.要是想在服务器端也添加聊天功能,要如何实现呀?是不是跟客户端一样的编程方法? | 
            
            
            
              | liuyax
                  
                  22694
                   | 
              2006/4/6 15:00:27 | 
            
            
              1、Idstack单元已包含在最上面的uses中 2、ParseList作用为获取在线用户列表,发过来的为一串字符,每个用户之间用“;”分割,需要分别解析,然后添加到treeview列表中 | 
            
            
            
              | jojozzf
                  
                  22687
                   | 
              2006/4/6 11:55:30 | 
            
            
              function TfrmMain.ParseList(OnlineList:string):Boolean 这个函数的作用我不太明白~~ | 
            
            
            
              | jojozzf
                  
                  22644
                   | 
              2006/4/4 21:55:33 | 
            
            
              谢谢你的答复!呵呵 我又有问题了~~~~ 你的代码中的StrPcopy(msg.from_ip, GStack.LocalAddress);是指获得本机IP地址并把他复制到msg.from_ip中吧?我知道了Gstack是IdStack单元中预定义的TIdstack类型,在程序中不需要在uses 中添加IdStack吗? | 
            
            
            
              | liuyax
                  
                  22472
                   | 
              2006/3/29 9:56:11 | 
            
            
              to jojozzf:     客户端也使用TIdUDPServer是为了方便客户端之间直接进行数据交换,而不需要通过服务器中转(传送文件、视频等),因为TIdUDPServer可以在一个端口监听。     使用UDPAntiFreeze是为了透明地解决客户程序用户界面“冻结”的问题,因为使用的socket是“阻塞式”,必须等到socket调用完成后才能返回,这段时间用户界面出现“僵化”状况,而这个控件能够避开这个缺点。 | 
            
            
            
              | jojozzf
                  
                  22380
                   | 
              2006/3/25 19:29:58 | 
            
            
              你好!因为我毕业设计要求编写聊天系统,学习了你写的程序,我有一些疑问如下,希望得到你的回答,谢谢! 1.你的程序服务器端和客户端都使用了控件:TIdUDPServer,而没有使用TIdUDPClient。TIdUDPServer这个组件是用于服务器端监听和接收数据的,也可以用于发送数据吗??还是说客户端发送数据是要利用TIdUDPClient组件?你是利用StrPCopy()实现的吗? 2.客户端和服务器端都使用了控件UDPAntiFreeze,上网查找只了解到它是来透明地解决客户程序用户界面“冻结”的问题,但我还是不太明白。你能跟我说明一下吗?
  现在还在学习你的程序,还会遇到好多问题,但是我会认真学的,谢谢你编写的程序! | 
            
            
            
              | sohusun
                  
                  21135
                   | 
              2006/1/20 15:58:38 | 
            
            
              | 没木马...很想认识作者,不知道作者是否可以留个联系方法... | 
            
            
            
              | shugeng
                  
                  20168
                   | 
              2005/12/20 14:32:54 | 
            
            
              | 没有木马,不错的程序。谢谢! | 
            
            
            
              | alex_niki
                  
                  20126
                   | 
              2005/12/19 11:29:26 | 
            
            
              这个是解压时的日志
  2005-12-16 15:07:57 已删除  GXLX-116\Administrator WinRAR.exe D:\delphi\liuyax_IdUdpComm\IdUdpComm\bin\Server.exe BackDoor-CQR (特洛伊)
  源代码是么有问题的 | 
            
            
            
              | fxboy1983
                  
                  20081
                   | 
              2005/12/17 2:12:50 | 
            
            
              | 下来看看,学习学习 | 
            
            
            
              | liuyax
                  
                  20072
                   | 
              2005/12/16 17:37:34 | 
            
            
              | 绝对不可能有木马!你的查毒软件严重误报!在8000端口监听数据包就是有木马吗? | 
            
            
            
              | alex_niki
                  
                  20065
                   | 
              2005/12/16 15:23:46 | 
            
            
              | 卖咖啡查到服务端程序有木马 | 
            
            
            
              | x00ganlu
                  
                  20046
                   | 
              2005/12/15 20:11:49 | 
            
            
              不错了,我正在为明天交不出作业烦恼呢 老师要我们做个类似QQ的越类似越好,可惜我连你做的这个基本功能都不会,都不知道这个学期怎么死法........ | 
            
            
            
              | jj198
                  
                  19969
                   | 
              2005/12/13 11:14:33 | 
            
            
              | 那用得到!唉,还以为能对我有启发呢。。。 |