zoukankan      html  css  js  c++  java
  • udp,tcp对于socket的写法

    1.udp的简述

    UDP协议提供的服务不同于TCP协议的端到端服务,它是面向非连接的,属不可靠协议,UDP套接字在使用前不需要进行连接。

    2.客户端代码,

    DatagramSocket ds=new DatagramSocket(1086);                                                                                
    
        byte[] bys = new byte[1024];
        int len = bys.length;
        DatagramPacket dp = new DatagramPacket(bys, len);
    
        ds.receive(dp);
    
        byte[] by = dp.getData();
        int length = dp.getLength();
    
        InetAddress address = dp.getAddress();
        String ip = address.getHostAddress();
    
        String s = new String(by, 0, length);
        System.out.println(ip + "---" + s);
    
    ds.close();

    3.服务端代码

    DatagramSocket ds=new DatagramSocket();
    		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    		String line=null;
    		byte [] bys=line.getBytes();
    		int num=bys.length;
    
    		InetAddress address=InetAddress.getByName("172.19.106.2");
    
    		int port=1086;
    		DatagramPacket dp=new DatagramPacket(bys,num, address,port);
    
    		ds.send(dp);		
    		ds.close();
    

     

    2.tcp的简述

    CP协议提供面向连接的服务,通过它建立的是可靠地连接。

    客户端

    //1.创建对象
            ServerSocket sk=new ServerSocket(11111);
            //2.监听
            Socket s=sk.accept();
            //打包数据
            BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));    
            BufferedReader bw=new BufferedReader(new InputStreamReader(System.in));
            OutputStream os=s.getOutputStream();
            String line=null;
            while((line=br.readLine())!=null){
                System.out.println("Client 	"+line);        
                
                os.write(bw.readLine().getBytes());
            }            
            //释放资源
            s.close();
            //sk.close();

    服务端

    Socket sk=new Socket("192.168.60.218",11111);
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));
            String line=null;
            while((line=br.readLine())!=null){            
                bw.write(line);
                bw.newLine();
                bw.flush();
                
                InputStream is=sk.getInputStream();            
                byte [] by=new byte[1024];
                int num=is.read(by);
                String h=new String(by, 0, num);
                System.out.println("Service:	"+h);
            }                    
                //br.close();
                //bw.close();
                sk.close();

    后面还有呢,,,

  • 相关阅读:
    Flutter开发指南之理论篇:Dart语法05(单线程模型,事件循环模型,Isolate)
    跨平台将终结
    一万字详解 Redis Cluster Gossip 协议
    Java实现简单的计算器
    CSDN开发者周刊第 22期:谷歌 DeepMind 第四代:不学规则就可以玩游戏;图灵奖得主 Edmund Clarke 因感染“新冠”逝世;
    理解Python闭包,这应该是最好的例子
    sscanf函数用法详解
    web项目中配置多个数据源
    web项目中配置多个数据源
    动态表格之查看、删除、编辑
  • 原文地址:https://www.cnblogs.com/s122/p/8686631.html
Copyright © 2011-2022 走看看