用Java Socket开发支持上千个并发的小型服务器(上) - 编程入门网
它们提供了一般称为服务的附加功能。服务的例子有:电子邮件、远程登录的Telnet、和通过网络传输文件的文件传输协议(FTP)。每种服务都与一个端口相联系。端口是一个数值地址,通过它来处理服务请求(就象请求Web页一样)。
TCP协议需要两个数据项:IP地址和端口号。因此,当键入http://www.jinnuo.com时,你是如何进入金诺的主页呢? 因特网协议(IP)提供每一项网络设备。这些设备都带有一个称为IP地址的逻辑地址。由因特网协议提供的IP地址具有特定的形式。每个IP地址都是32位的数值,表示4个范围在0到255之间的8位数值金诺已经注册了它的名字,分配给http://www.jinnuo.com的IP地址为192.168.0.110。 注意:域名服务或DNS服务是将http://www.jinnuo.com翻译成192.168.0.110的服务。这使你可以键入http://www.jinnuo.com而不必记住IP地址。想象一下,怎么可能记住所有需要访问的站点的IP地址!有趣的是一个网络名可以映射到许多IP地址。对于经常访问的站点可能需要这一功能,因为这些站点容纳大量的信息,并需要多个IP地址来提供业务服务。例如:192.168.0.110的实际的内部名称为http://www.jinnuo.com。DNS可以将分配给jinnuoLtd.的一系列IP地址翻译成http://www.jinnuo.com。 如果没有指明端口号,则使用服务文件中服务器的端口。每种协议有一个缺省的端口号,在端口号未指明时使用该缺省端口号。 端口号 应用 21 FTP.传输文件 23 Telnet.提供远程登录 25 SMTP.传递邮件信息 67 BOOTP.在启动时提供配置情况 80 HTTP.传输Web页 109 POP.使用户能访问远程系统中的邮箱 让我们再来看一下URl :http://www.jinnuo.com URL的第一部分(http)意味着你正在使用超文本传输协议(HTTP),该协议处理Web文档。如果没有指明文件,大多数的Web服务器会取一个叫index.html文件。因此,IP地址和端口既可以通过明确指出URL各部分来决定,也可以由缺省值决定。 用Java Socket开发支持上千个并发的小型服务器(上)(3)时间:2010-04-154 创建Socket客户 我们将在本部分讨论的示例将阐明在Java代码中如何使用Socket和ServerSocket。客户机用Socket连接到服务器。服务器用ServerSocket在端口1001侦听。客户机请求服务器C:驱动器上的文件内容。 创建RemoteFileClient类 1.import java.io.*;2.import java.net.*;3.public class RemoteFileClient {4. protected BufferedReader socketReader;5. protected PrintWriter socketWriter;6. protected String hostIp;7. protected int hostPort;8. //构造方法9. public RemoteFileClient(String hostIp, int hostPort) {10. this.hostIp = hostIp;11. this.hostPort=hostPort;12. }13. //向服务器请求文件的内容14. public String getFile(String fileNameToGet) {15. StringBuffer fileLines = new StringBuffer();16. try {17. socketWriter.println(fileNameToGet);18. socketWriter.flush();19. String line = null;20. while((line=socketReader.readLine())!=null)21. fileLines.append(line+"\n");22. }23. catch(IOException e) {24. System.out.println("Error reading from file: "+fileNameToGet);25. }26. return fileLines.toString();27. }28. //连接到远程服务器29. public void setUpConnection() {30. try {31. Socket client = new Socket(hostIp,hostPort);32. socketReader = new BufferedReader(new Inpu |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |