计算机二级java辅导:Java语言的Socket类计算机二级考试

文章作者 100test 发表时间 2009:05:07 18:48:14
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  当客户程序需要与服务器程序通讯的时候,客户程序在客户机创建一个socket对象,Socket类有几个构造函数。两个常用的构造函数是 Socket(InetAddress addr, int port) 和 Socket(String host, int port),两个构造函数都创建了一个基于Socket的连接服务器端流套接字的流套接字。对于第一个InetAddress子类对象通过addr参数获得服务器主机的IP地址,对于第二个函数host参数包被分配到InetAddress对象中,如果没有IP地址与host参数相一致,那么将抛出UnknownHostException异常对象。两个函数都通过参数port获得服务器的端口号。假设已经建立连接了,网络API将在客户端基于Socket的流套接字中捆绑客户程序的IP地址和任意一个端口号,否则两个函数都会抛出一个IOException对象。
  如果创建了一个Socket对象,那么它可能通过调用Socket的 getInputStream()方法从服务程序获得输入流读传送来的信息,也可能通过调用Socket的 getOutputStream()方法获得输出流来发送消息。在读写活动完成之后,客户程序调用close()方法关闭流和流套接字,下面的代码创建了一个服务程序主机地址为198.163.227.6,端口号为13的Socket对象,然后从这个新创建的Socket对象中读取输入流,然后再关闭流和Socket对象。
  Socket s = new Socket ("198.163.227.6", 13).
  InputStream is = s.getInputStream ().
  // Read from the stream.
  is.close ().
  s.close ().
  接下面我们将示范一个流套接字的客户程序,这个程序将创建一个Socket对象,Socket将访问运行在指定主机端口10000上的服务程序,如果访问成功客户程序将给服务程序发送一系列命令并打印服务程序的响应。List2使我们创建的程序SSClient的源代码:  
  Listing 2: SSClient.java
  // SSClient.java
  import java.io.*.
  import java.net.*.
  class SSClient
  {public static void main (String [] args)
  {String host = "localhost".
  // If user specifies a command-line argument, that argument
  // represents the host name.
  if (args.length == 1)
  host = args [0].
  BufferedReader br = null.
  PrintWriter pw = null.
  Socket s = null.
  try
  {// Create a socket that attempts to connect to the server
  // program on the host at port 10000.
  s = new Socket (host, 10000).
  // Create an input stream reader that chains to the socket´.s
  // byte-oriented input stream. The input stream reader
  // converts bytes read from the socket to characters. The
  // conversion is based on the platform´.s default character
  // set.
  InputStreamReader isr.
  isr = new InputStreamReader (s.getInputStream ()).
  // Create a buffered reader that chains to the input stream
  // reader. The buffered reader supplies a convenient method
  // for reading entire lines of text.
  br = new BufferedReader (isr).
  // Create a print writer that chains to the socket´.s byte-
  // oriented output stream. The print writer creates an
  // intermediate output stream writer that converts
  // characters sent to the socket to bytes. The conversion
  // is based on the platform´.s default character set.
  pw = new PrintWriter (s.getOutputStream (), true).
  // Send the DATE command to the server.
  pw.println ("DATE").
  // Obtain and print the current date/time.
  System.out.println (br.readLine ()).
  // Send the PAUSE command to the server. This allows several
  // clients to start and verifies that the server is spawning
  // multiple threads.
  pw.println ("PAUSE").
  // Send the DOW command to the server.

相关文章


计算机二级:基于Java事务模型的事务策略计算机二级考试
计算机二级考试java辅导:Java同步机制浅谈计算机二级考试
计算机二级:Java语言的中文问题解决之道计算机二级考试
计算机二级java辅导:Java语言的Socket类计算机二级考试
计算机二级java辅导:Java语言的修饰符计算机二级考试
计算机二级:无人使用的Java语言特性计算机二级考试
memcachedforwindows修改端口和最大内存计算机二级考试
计算机二级java辅导:dtree树形菜单简例计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛