从事android客户端测试。微博:http://weibo.com/xingzunxi

发布新日志

  • javaTcp通信小程序

    2009-05-26 15:37:31

    TCP提供的网络通讯接口与用户数据报协议(UDP)截然不同。TCP的特性使网络编程很具魅力,而且它删除了UDP的很多干扰部分(例如数据包的排序和丢失),简化了网络通讯。UDP关心的是数据包的传输,而TCP关注的是建立网络连接,并在网络连接中发送和接收字节流。

    下边是编写的一个简单的Tcp通信代码,

    服务器端:

    package net;

    /**
     *
     * @author xingdabang
     */
    import java.io.*;
    import java.net.*;
    class Servicer implements Runnable{
        Socket s;
        public Servicer(Socket s){
        this.s=s;
        }
       public void run(){
        try{
        InputStream ips=s.getInputStream();
        OutputStream ps=s.getOutputStream();
        BufferedReader br=new BufferedReader(new InputStreamReader(ips));
        DataOutputStream dos=new DataOutputStream(ops);
        while(true){
            String strword=br.readLine();
            if(strword.equalsIgnoreCase("quit"))
                break;
            String strecho=(new StringBuffer(strword).reverse()).toString();
            dos.writeBytes(strword+"     "+strecho+"\r\n");
            System.out.println(strecho);
            br.close();
            dos.close();
            s.close();
        }
        }catch(Exception e){
        }
       }
    }
    public class TcpServer {
        public static void main(String args[]){
            try{
        ServerSocket ss=new ServerSocket(9000);
       while(true){
       Socket s=ss.accept();
       new Thread(new Servicer(s)).start();
       }

        }catch(Exception e){}

    }
    }

    客户端:

    package net;

    /**
     *
     * @author xingdabang
     */
    import java.io.*;
    import java.net.*;
    public class TcpClient {
        public static void main(String args[]){
         try{
    //       if(args.length<2){
    //       System.out.println("budui");
    //       return;
    //       }
    //       Socket s=new Socket(InetAddress.getByName(args[0]),Integer.parseInt(args[1]));
              Socket s=new Socket(InetAddress.getByName("192.168.136.220"),9000);
    //       System.out.println(InetAddress.getByName("192.168.136.220"));
          
           InputStream ips=s.getInputStream();
        OutputStream ps=s.getOutputStream();
        BufferedReader brkey=new BufferedReader(new InputStreamReader(System.in));
        DataOutputStream dos=new DataOutputStream(ops);
       BufferedReader brnet=new BufferedReader(new InputStreamReader(ips));
        while(true){

            String strword=brkey.readLine();
          System.out.println(strword);

          dos.writeBytes(strword + System.getProperty("line.separator"));
         
          if(strword.equalsIgnoreCase("quit"))
              break;
          else
              System.out.println(brnet.readLine());
        }
       dos.close();
       brnet.close();
       brkey.close();
       s.close();
         }catch(Exception e){
         System.out.println("buhao");
         }
        }

    }

  • UDP协议

    2009-05-25 15:58:40

    UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。 UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的

    下边是一个完整的小例子

    UdpSend.java

    package net;

    /**
     *
     * @author xingdabang
     */
    import java.net.*;
    public class UdpSend {
        public static void main(String args[])throws Exception{
        DatagramSocket ds=new DatagramSocket();
        String s="你好啊";
        DatagramPacket dp=new DatagramPacket(s.getBytes(),s.getBytes().length,InetAddress.getByName("192.168.136.220"),3000);
        ds.send(dp);
        ds.close();

        }

    }

    UdpRecv.java

    package net;

    /**
     *
     * @author xingdabang
     */
    import java.net.*;
    public class UdpRecv {
        public static void main(String args[])throws Exception{
        DatagramSocket ds=new DatagramSocket(3000);
        byte[] buf=new byte[1024];
        DatagramPacket dp=new DatagramPacket(buf,1024);
        ds.receive(dp);
        String strrev=new String(dp.getData(),0,dp.getLength());
        System.out.println(strrev);
        ds.close();
        }

    }

     

Open Toolbar