• --:)欢迎访问锋网源码(:--
  • 首页
  • RSS订阅
  • 常用软件
  • 网页模板
  • 网站运作
  • 锋网学院
  • 智能建站
  • 时代互联
  • 中国红网
  • 中资源!
  • 繁體中文

  • 学院首页
  • 新闻资讯
  • 网站运营
  • 网站开发
  • 美工设计
  • 数据库类
  • 服务器类
  • 网络应用
  • 操作系统
  • 软件教学
编程开发   认证考试   网络安全   文章搜索: 高级搜索
会员登录/控制面版 您的位置: 学院首页 >> 认证考试 >> java认证 >> 文章内容
 

精彩推荐

 
 

本类推荐文章

 
 

本类阅读排行

  • JAVA:使用Axis开发Web Servi..
  • 区分JAVA引用类型和原始类型
  • 属性配置文件的使用方法
  • String.getBytes()方法中的中..
  • 剖析Java对象转为String的几..
  • 在Java中轻松实现界面跳转
  • java中实现sql的select函数功..
  • java的“别名”以及clone机制..
  • JAVA:EJB 的异常处理的最佳做..
  • 用Java简单实现文件分割与合..
  • 如何突破Java异常处理规则
  • 什么是基于Java的责任链模式
  • 有效使用final关键字的准则
  • JAVA使用内部类和匿名类优化..
  • SCWCD考试大纲中各部分的题量..
  • 高手告诉你Java学习的捷径
  • 如何迅速获取Java认证?
  • Static和Final修饰类属性变量..
  • 浅析Java中Data类的实际应用
  • Web应用中Java的速度真相探讨..
 
 

Java Socket编程者值得一看的内容

  • 日期:2008-03-05     人气:     出处:本站     作者:
  • 字体大小:
  • 小
  • 中
  • 大

  事实上网络编程简单的理解就是两台计算机相互通讯数据而已。对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了。Java SDK提供一些相对简单的Api来完成这些工作,Socket就是其中之一。

Webjx.Com

  对于Java而言。这些Api存在与Java.net这个包里面。因此只要导入这个包就可以准备网络编程了。网络编程的基本模型就是客户机到服务器模型。简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置,并去建立两者之间的联系。然后完成数据的通讯就可以了。这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端。基于这个简单的模型,就可以进入网络编程。

  Java对这个模型的支持有很多种Api.而这里我只想介绍有关Socket的编程接口。对于Java而言已经简化了Socket的编程接口。首先我们来讨论有关提供固定位置的服务方是如何建立的。Java提供了ServerSocket来对其进行支持。事实上当你创建该类的一个实力对象并提供一个端口资源你就建立了一个固定位置可以让其他计算机来访问你。 Webjx.Com

以下是引用片段:
  ServerSocket server=new ServerSocket(6789);
网页教学网

  这里稍微要注意的是端口的分配必须是唯一的。因为端口是为了唯一标识每台计算机唯一服务的。另外端口号是从0~65535之间的,前1024个端口已经被Tcp/Ip 作为保留端口,因此你所分配的端口只能是1024个之后的。

  好了。我们有了固定位置。现在所需要的就是一根连接线了。该连接线由客户方首先提出要求。因此Java同样提供了一个Socket对象来对其进行支持。只要客户方创建一个Socket的实例对象进行支持就可以了。

网页教学网

以下是引用片段:
  Socket client=new Socket(InetAddress.getLocalHost(),5678);
网页教学网

  客户机必须知道有关服务器的IP地址。对于着一点Java也提供了一个相关的类InetAddress 该对象的实例必须通过它的静态方法来提供。它的静态方法主要提供了得到本机IP 和通过名字或IP直接得到InetAddress的方法。

Webjx.Com

  好了,上面的方法基本可以建立一条连线让两台计算机相互交流了。可是数据是如何传输的呢?事实上I/O操作总是和网络编程息息相关的。因为底层的网络是继续数据的。除非远程调用,处理问题的核心在执行上。

网页教学网

  否则数据的交互还是依赖于IO操作的。所以你也必须导入Java.io这个包。Java的IO操作也不复杂。它提供了针对于字节流和Unicode的读者和写者,然后也提供了一个缓冲用于数据的读写。

以下是引用片段:
  BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
  PrintWriter out=new PrintWriter(server.getOutputStream());

Webjx.Com

  上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作。而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出。那么现在有了基本的模型和基本的操作工具,我们可以做一个简单的Socket例程了服务方:

网页教学网

以下是引用片段:
  import Java。io。*;
  import Java。net。*;
  public class MyServer
  {
  public static void main
  (String[] args) throws IOException
  {
  ServerSocket server=new
  ServerSocket(5678);
  Socket client=server.accept();
  BufferedReader
  in=new BufferedReader(new
  InputStreamReader
  (client.getInputStream()));
  PrintWriter out=new
  PrintWriter(client.getOutputStream());
  while(true)
  {

Webjx.Com


  String str=in.readLine();
  System.out.println(str);
  out.println("has receive...");
  out.flush();
  if(str.equals("end"))
  break;
  }
  client。close();
  }
  }

  这个程序的主要目的在于服务器不断接收客户机所写入的信息只到。客户机发送"End"字符串就退出程序。并且服务器也会做出"Receive"为回应。告知客户机已接收到消息。客户机代码: Webjx.Com

以下是引用片段:
  import Java.net.*;
  import Java.io.*;
  public class Client{
  static Socket server;
  public static void
  main(String[] args)
  throws Exception
  {
  server=new Socket
  (InetAddress.getLocalHost(),5678);
  BufferedReader in=new BufferedReader(new
  InputStreamReader(server。getInputStream()));
  PrintWriter out=new
  PrintWriter(server.getOutputStream());
  BufferedReader wt=new BufferedReader(new
  InputStreamReader(System.in));
  while(true)
  {
  String str=wt.readLine();
  out.println(str);
  out.flush();
  if(str.equals("end"))
  {
  break;
  }
  System.out.println(in.readLine());
  }
  server.close();
  }
  }

相关文章
相关软件

  • 网友评论:
  • 查看所有评论
  • 我要发表评论
 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 加入收藏 | 帮助中心 |

Copyright © 2006-2007 fwvv.net  程序支持:木翼  皖ICP备06004916号  

感谢:点击网络 联网科技 天盈信息  提供服务器及带宽赞助