Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2243954
  • 博文数量: 556
  • 博客积分: 11457
  • 博客等级: 上将
  • 技术积分: 5973
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 22:33
文章分类

全部博文(556)

文章存档

2013年(22)

2012年(74)

2011年(460)

分类: Java

2011-08-31 20:47:00

TCP协议:Socket,可靠的服务:A-->B  三次握手
UDP协议:不可靠,短信功能
 
TCP:
  1. package protocol;
  2. import java.net.*;
  3. import java.io.*;
  4. public class TCPServer {
  5.     public static void main(String[] args) throws Exception{
  6.         //使用ServerSocket
  7.         ServerSocket server=null;
  8.         //每一个用户在程序中就是一个Socket
  9.         Socket client=null;
  10.      server=new ServerSocket(8888);
  11.      //等待客户端连接
  12.      client=server.accept();
  13.      PrintWriter out=null;
  14.     
  15.      //准备向客户端打印信息
  16.      out=new PrintWriter(client.getOutputStream());
  17.      out.println("Hello");
  18.      out.close(); //关闭流
  19.      client.close();
  20.      server.close();
  21.     }
  22. }
  1. package protocol;
  2. import java.io.*;
  3. import java.net.*;
  4. public class TCPClient {
  5.     public static void main(String[] args)throws Exception {
  6.         //表示一个客户端的Socket
  7.         Socket client=null;
  8.         //表示一个客户端的输入信息
  9.         BufferedReader buf=null;
  10.         client=new Socket("localhost",8888);
  11.         buf=new BufferedReader(new InputStreamReader(client.getInputStream()));
  12.         System.out.println(buf.readLine());
  13.         buf.close();
  14.         client.close();
  15.     }
  16. }

UDP:

  1. package protocol;
  2. import java.net.*;
  3. import java.io.*;
  4. public class UDPServer {
  5.      public static void main(String[] args)throws Exception {
  6.         
  7.         DatagramSocket ds=null;
  8.         DatagramPacket dp=null;
  9.         //要保证UDP有一个运行的端口
  10.         ds=new DatagramSocket(5000);
  11.         String s="Hello MLDN haha";
  12.         //建立服务器端的一个发送端
  13.    dp=new DatagramPacket(s.getBytes(),0,s.length(),InetAddress.getByName("localhost"),9999);
  14.         ds.send(dp);
  15.         ds.close();
  16.     }
  17. }
  1. package protocol;
  2. import java.io.*;
  3. import java.net.*;
  4. public class UDPServerInput {
  5.      public static void main(String[] args) throws Exception{
  6.         DatagramSocket ds=null;
  7.         DatagramPacket dp=null;
  8.         //要保证UDP有一个运行的端口
  9.         ds=new DatagramSocket(6000);
  10.         //String s="Hello MLDN haha";
  11.         //BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
  12.         System.out.println("请输入要发送的信息:");
  13.         //s=buf.readLine();
  14.         byte b[]=new byte[1024];
  15.      int len=System.in.read(b);
  16.         //System.out.println(s.length());
  17.         //dp=new DatagramPacket(s.getBytes(),0,s.length(),InetAddress.getByName("localhost"),9999);
  18.         //dp.setData(s.getBytes());
  19.      dp=new DatagramPacket(b,0,len,InetAddress.getByName("localhost"),9999);
  20.         ds.send(dp) ;
  21.          ds.close();
  22.     }
  23. }
  1. package protocol;
  2. import java.io.*;
  3. import java.net.*;
  4. public class UDPClient {
  5.     public static void main(String[] args) throws Exception{
  6.         DatagramSocket ds=null;
  7.         DatagramPacket dp=null;
  8.     //手机发信息和接收信息是有大小限制的
  9.         byte b[]=new byte[1024];
  10.     //在9999端口上一直等待信息到来
  11.     ds=new DatagramSocket(9999);
  12.     dp=new DatagramPacket(b,b.length);
  13.     ds.receive(dp);
  14.     //从数据包中取出数据
  15.     String str=new String(dp.getData(),0,dp.getLength());
  16.     System.out.println("接收到的数据为:"+str);
  17.     ds.close();
  18.     }
  19. }
阅读(2336) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

网络安全服务2011-11-25 16:29:03