如何用Delphi编程实现禁用或启用某个端口?

解决方案 »

  1.   

    什么端口??
    CPU的IO端口?
    网络协议的端口??
    不说清楚别人怎么帮你呢?
      

  2.   

    一.Winsocket属性的设置   Delphi 4.0中将Winsocket细分为两种组件:ClientSocket和ServerSocket。它们分别作为客户端和服务器端的组件。即在客户端程序中采用ClientSocket组件,而在服务器端则采用ServerSocket组件。通过这两种组件之间的通信,再加上辅助的应用程序代码,就可以实现一个简单的通信程序。当然在客户端程序中再引入ServerSocket的话,那么客户端程序就可以充当服务器了,可以对其他的客户端程序的请求进行响应。   如果正在编写服务器端程序,就必须设置ServerSocket组件的Port属性。之所以要设置此参数,是因为在同一台计算机上可能运行着多个服务器程序,而它们可能总在不停地接受来自于远程客户端程序的连接请求。如果你正试图发送一份电子邮件,而系统却将你的请求连接到了另外一个服务器程序上了,则你的邮件就肯定无法正常发送出去了。所以必须给服务器程序上的ServerSocket组件设置一个合适的端口号Port。也可以设置Service属性,它指示了ServerSocket所提供的服务类型,比如:FTP、HTTP等等。然后设置Active属性为True。   如果正在编写客户端程序,则设置ClientServer组件的属性就多一些。Port属性应设置成和服务器端的Port属性值一致。另外Host的属性必须正确设置,它是一个只读属性,在设计时不可用。它指示了客户程序所要连接的远程服务器的主机名。也可以设置Address属性,也就是远程主机的IP地址。如果这两个属性都设置了的话,那么系统将采用Host属性,而Address属性设置的IP地址就变成无效了。   二.建立与远程计算机的连接   要在远程计算机系统之间进行数据传输,首先必须在通信的两台主机之间建立连接。   服务器端的ServerSocket组件调用Open方法初始化Socket连接,同时也就设置了Active属性为True,将ServerSocket组件设置成侦听模式,随时侦测是否有连接请求。   如果服务器接受了客户程序的连接请求,则触发OnAccept事件,如下代码就是处理接受连接后服务器程序所要做的工作。   procedure Myform..ServerSocketAccept(Sender: TObject,Socket: TCustomWinSocket);   begin   IsServer := True;   end;   在客户端程序中,ClientSocket组件则设置Port、Host等必须的属性,然后设置Active属性为True,提出连接请求。   三.计算机之间的数据传输   一旦服务器端接受了客户机方面的连接请求,客户机就可以发送数据。这时,在客户机和服务器之间就拥有了一个Socket,通过此Socket双方实现通信。所以Socket属性很重要,它又拥有很多的方法,用其中的几个简单的方法,就可以实现数据的发送和接收。   客户机端用如下形式:ClientSocket1.socket.sendtext('string you want to send');   在服务器端采用如下形式:ServerSocket1.socket.recievetext( str: string);此函数返回接受到的字符串的长度,将字符串存储在变量str中。   上述是数据传输的最简单的例子,你还可以采用Socket属性所提供的其他方法来实现复杂的数据传输。 
      

  3.   

    在delphi6,7中,你选择udpserver,udpclient.他们通过socket对端口操作。主要用readbuffer();
    和receivebuffer();defaultport是要监听的端口,你可通过关闭socket来关闭端口。
      

  4.   

    能不能“禁用”端口,也就是不能让某个应用程序不能启用某个端口。“通过关闭socket来关闭端口”能不能再说得明白些。thanks.