| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2878 人关注过本帖
标题:delphi 网络通信
只看楼主 加入收藏
baoxiang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-7-11
收藏
 问题点数:0 回复次数:7 
delphi 网络通信
delphi中我知道客户端的IP地址和端口号,怎么写服务端的程序连接呀?我用的是serversocket控件,求高手赐教,求简单程序
搜索更多相关主题的帖子: 通信 服务端 客户端 IP地址 
2011-07-12 10:52
wangchatian
Rank: 2
等 级:论坛游民
帖 子:34
专家分:10
注 册:2011-1-24
收藏
得分:0 
回复 楼主 baoxiang
你提的问题实际上是一个远程控制问题,不是一句两句话能说清楚的,在此我们就以一个简单的远程控制程序作为示例,说明这种网络编程的基本原理。
    一、本程序以Delphi编程为例。其实该程序的工作机制很简单,受控方运行一个程序,用于侦听端口并接收数据包,而主控方通过端口给受控方的端口发送数据包。根据这个原理,我们编写两个程序,一个是控制方的,而另一个是受控方的,把这两个程序运行在两台不同的机器上,受控机等待控制机发送过来的数据然后执行相应的操作(如本例中的重启)。
  二、Delphi中有两类控件可以实现上面的目的。一类是控制方使用ClientSocket,受控方使用ServerSocket(均在Internet页),另一类是双方都使用NMUDP(在FastNet页)。我们知道网络传输都是不可靠的,也就是说传输的数据有可能丢失,而这两类控件的区别是前者使用TCP(Transfer Control Protocol,传输控制协议)。TCP协议是面向连接,每次双方建立连接(或断开)时需经过三次握手,较为耗时,但数据传输可靠;而后者使用UDP(User Datagram Protocol,用户报文协议),它是面向无连接的,发出数据不需对方确认,这样速度比TCP快,但数据有可能丢失,因此它不可靠。由于控制所需传送的数据量不大,而且需要较高的可靠性,因此一般使用前者,程序说明如下:   
   第一步,开始控制方程序,在其中加入clientsocket控件,取名control,设置host属性为受控机ip地址,port属性为1234(端口可以随便设置,但不要与一些默认端口重复,如80等)。   
   第二步,在FormCreate事件中加入代码control.open; //打开与受控机的通信   
   第三步,加入个Button,设置caption为“重新启动”,并在ButtonClick事件中加入代码control.Socket.SendText('reboot');//通知受控机重新启动。这样就完成了控制方的工作了。   
   第四步,开始受控方的程序,在其中加入serversocket控件,取名undercontrol,设置port属性为1234(与控制方的端口一致),active属性为true;   
   第五步,在undercontrol的OnclientRead事件中加入代码if Socket.ReceiveText='reboot' then   ExitWindowsEx(EWX_REBOOT,2); //重启的API函数   这样就完成了代码的工作,然后编译这两个程序生成两个.exe文件分别放在两台机器上运行(记得先运行Win98下的受控机程序),在控制机按下“重新启动”的Button(按钮),受控机就重新启动了。远程控制机器重启成功实现。   以上可供你参考。

[ 本帖最后由 wangchatian 于 2011-9-14 21:51 编辑 ]
2011-09-14 21:48
jhkoo7
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-3-2
收藏
得分:0 
不错,请问一楼的有没有基于delphi的聊天工具啊
2013-03-02 09:49
jhkoo7
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-3-2
收藏
得分:0 
不错,请问一楼的有没有基于delphi的聊天工具啊
2013-03-02 09:49
jhkoo7
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 2楼 wangchatian
请问有没有基于delphi的聊天工具啊,有的话发给我346799825@,谢谢了
2013-03-02 09:50
许你一个愿望
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-4-30
收藏
得分:0 
回复 2 楼 wangchatian
亲,能帮忙做出来吗?谢谢啦
2014-04-30 21:10
快速回复:delphi 网络通信
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023213 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved