Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18106633
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:40:22

下载本文示例代码
  五、建立TCP客户端  讨论了套接字类的功能后,我们将分析一个完整的TCP客户端程序。此处我们将看到的客户端程序是一个daytime客户端,它连接到一个daytime服务器程序以读取当前的日期和时间。建立套接字连接并读取信息是一个相当简单的过程,只需要少量的代码。默认情况下daytime服务运行在13端口上。并非每台计算机都运行了daytime服务器程序,但是Unix服务器是客户端运行的很好的系统。如果你没有访问Unix服务器的权限,在第七部分我们给出了TCP daytime服务器程序代码--有了这段代码客户端就可以运行了。  DaytimeClient的代码 import java.net.*import java.io.*; public class DaytimeClient{public static final int SERVICE_PORT = 13; public static void main(String args[]){// 检查主机名称参数if (args.length != 1){System.out.println ("Syntax - DaytimeClient host");return;} // 获取服务器程序的主机名称String hostname = args[0]; try{// 获取一个连接到daytime服务的套接字Socket daytime = new Socket (hostname, SERVICE_PORT); System.out.println ("Connection established"); // 在服务器程序停止的情况下设置套接字选项daytime.setSoTimeout ( 2000 ); // 从服务器程序读取信息BufferedReader reader = new BufferedReader (new InputStreamReader(daytime.getInputStream())); System.out.println ("Results : " reader.readLine()); // 关闭连接daytime.close();}catch (IOException ioe){System.err.println ("Error " ioe);}}}   DaytimeClient是如何工作的  Daytime应用程序是很容易理解的,它使用了文章前面谈到的概念。建立套接字、获取输入流,在很少的事件中(在连接时像daytime一样简单的服务器程序失败)激活超时设置。不是连接已筛选过的流,而是把有缓冲的读取程序连接到套接字输入流,并且把结果显示给用户。最后,在关闭套接字连接后客户端终止。这是你可能得到的最简单的套接字应用程序了--复杂性来自实现的网络协议,而不是来自具体网络的编程。  运行DaytimeClient  运行上面的应用程序很简单。简单地把运行daytime服务的计算机的主机名称作为命令行参数指定并运行它就可以了。如果daytime服务器程序使用了非标准的端口号(在后面会讨论),记得需要改变端口号并重新编译。  例如,如果服务器程序在本机上,为了运行客户端将使用下面的命令:java DaytimeClient localhost  注意  Daytime服务器程序必须正在运行中,否则该客户端程序将不能建立连接。例如如果你正在使用Wintel系统而不是Unix,那么你需要运行DaytimeServer(后面会谈到)。 共5页。 1 2 3 4 5 :   五、建立TCP客户端  讨论了套接字类的功能后,我们将分析一个完整的TCP客户端程序。此处我们将看到的客户端程序是一个daytime客户端,它连接到一个daytime服务器程序以读取当前的日期和时间。建立套接字连接并读取信息是一个相当简单的过程,只需要少量的代码。默认情况下daytime服务运行在13端口上。并非每台计算机都运行了daytime服务器程序,但是Unix服务器是客户端运行的很好的系统。如果你没有访问Unix服务器的权限,在第七部分我们给出了TCP daytime服务器程序代码--有了这段代码客户端就可以运行了。  DaytimeClient的代码 import java.net.*import java.io.*; public class DaytimeClient{public static final int SERVICE_PORT = 13; public static void main(String args[]){// 检查主机名称参数if (args.length != 1){System.out.println ("Syntax - DaytimeClient host");return;} // 获取服务器程序的主机名称String hostname = args[0]; try{// 获取一个连接到daytime服务的套接字Socket daytime = new Socket (hostname, SERVICE_PORT); System.out.println ("Connection established"); // 在服务器程序停止的情况下设置套接字选项daytime.setSoTimeout ( 2000 ); // 从服务器程序读取信息BufferedReader reader = new BufferedReader (new InputStreamReader(daytime.getInputStream())); System.out.println ("Results : " reader.readLine()); // 关闭连接daytime.close();}catch (IOException ioe){System.err.println ("Error " ioe);}}}   DaytimeClient是如何工作的  Daytime应用程序是很容易理解的,它使用了文章前面谈到的概念。建立套接字、获取输入流,在很少的事件中(在连接时像daytime一样简单的服务器程序失败)激活超时设置。不是连接已筛选过的流,而是把有缓冲的读取程序连接到套接字输入流,并且把结果显示给用户。最后,在关闭套接字连接后客户端终止。这是你可能得到的最简单的套接字应用程序了--复杂性来自实现的网络协议,而不是来自具体网络的编程。  运行DaytimeClient  运行上面的应用程序很简单。简单地把运行daytime服务的计算机的主机名称作为命令行参数指定并运行它就可以了。如果daytime服务器程序使用了非标准的端口号(在后面会讨论),记得需要改变端口号并重新编译。  例如,如果服务器程序在本机上,为了运行客户端将使用下面的命令:java DaytimeClient localhost  注意  Daytime服务器程序必须正在运行中,否则该客户端程序将不能建立连接。例如如果你正在使用Wintel系统而不是Unix,那么你需要运行DaytimeServer(后面会谈到)。 共5页。 1 2 3 4 5 : 下载本文示例代码


Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)Java网络编程之传输控制协议(三)
阅读(195) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~