java网络编程

参考:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html

一、网络通信的协议

  TCP :采用捂手协议,类似打电话,要先建立连接,效率稍差

  UDP:类似发短信,不需要先建立连接,会丢失数据

二、客户端和服务端编程(TCP)

  1、基础的网络类:InetAddress类,该类代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类内

       InetAddress inet1 = InetAddress.getByName("www.163.com");  ----使用域名创建对象

       InetAddress inet2 = InetAddress.getByName("127.0.0.1");    --使用IP创建对象

  2、客户端:java.net.Socket类代表客户端连接

Socket socket1 = new Socket(“192.168.1.103”,10000);   ---->ip地址和端口号

     (1)Socket客户端的步骤:

       --设置连接的host及端口,根据host和端口得到客户端的Socket ;  ---从客户端获取输入输出流; --从输入流中读取;---从输出流中写入

     Socket  s=new Socket(serverIp,port)

    OutputStream  os=s.getOutputStream();  os.write();  

    InputStream  is=s.getInputStream();  is=.read();

3、服务器端  java.net.ServerSocket类代表服务器端

   --绑定端口;--接收客户端连接 ;--获取输入输出流;--从输入流中读取;--从输出流中写入

   ServerSocket serverSocket =new ServerSocket(port);

   Socket socket=serverSocket.accept();   PrintWriter out =new PrintWriter(socket.getOutputStream());

  InputStreamReader in=new InputStreamReader(socket.getInputStream());BufferedReader br =new BufferedReader(in);

二、UDP协议的客户端和服务端:UDP发送速度快,在用户量很大时,考虑速度

1、UDP客户端

  --创建一个DatagramSocket ;--获取服务器地址;--创建需要发送的内容(DatagramPacket),设置地址和端口

  --通过DatagramSocket发送DatagramPacket

  DatagramSocket ds =new DatagramSocket();

      byte[] buf =new byte[1024]

   2、UDP服务器端

      ---创建DatagramSocket并绑定端口;--通过DatagramPacket读取输入,写入输入

三、URL编程

1、URL url =new URL("http://www.baidu.com")  ---URL类封装了底层的TCP协议,使用的GET、Post方法

BuferedReader in =new BuferedReader(url.openStream());

2、URL连接  ---此时还没有连接上,需要URLConnection读取后才连接上,也可以通过URL直接去读取

四、高级网络编程:是在TCP、UDP协议上的封装,底层仍然通过Socket进行通讯,但上层封装了不同的协议:

   1、CORBA协议:不能很好的支持Internet,穿透防火墙困难,通过名称获取资源

   2、RMI:底层通过RMI/IIOP支持CORBA协议,不能很好的支持Internet协议,只能支持局域网协议,不需要Java EE服务器或Web服务器,但是需要注册机

   3、Web Service协议:可支持Internet协议,不受防护墙限制,可直接通过HTTP协议传输,支持内容加密,签名已HTTPS,是SOA、ESB的基础;运行于Java EE服务器中

   使用最多最广泛的协议,效率高,不需要考虑底层的一些实现,可使用wsdl2java生成客户端代码,

  4、JMS协议:Java自有的协议,支持点对点通讯,支持订阅、广播方式通讯,可支持消息持久化,缺点:需要支持JMS的中间件

  5、ZeroMQ协议:支持多种消息交换模式:请求、应答、订阅、广播、推拉模式


    



    

      



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值