zoukankan      html  css  js  c++  java
  • 网络编程:Tcp和Udp

    一、             TCP编程:

    ServerSocket用于服务器端,Socket用于客户端。

    1、一个简单的示例向客户端发送内容:

    import java.io.OutputStream;

    import java.io.PrintStream;

    import java.net.*;

    public class TcpDemo1 {

       public static void main(String[] args) throws Exception{

         ServerSocket server=new ServerSocket(8888);//在8888端口上开启服务

         Socket client=null;

         System.out.println("等待连接...");

         client=server.accept();//等待客户端连接

         OutputStream out=client.getOutputStream();//得到客户端输出流

         PrintStream pout=new PrintStream(out);

         pout.print("hello world");//向客户端输出内容

         pout.close();

         out.close();

         client.close();

         server.close();

         System.out.println("信息已发送!");

       }

    }

    2、读取客户端输入的内容:

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.net.*;

    public class TcpDemo2 {

       public static void main(String[] args) throws Exception{

         ServerSocket server=new ServerSocket(8888);//在8888端口上开启服务

         Socket client=null;

         System.out.println("等待连接...");

         client=server.accept();//等待客户端连接

         BufferedReader buf=new BufferedReader(

              new InputStreamReader(client.getInputStream()));//得到客户端输入流

         char[] cs=new char[1024];

         int len=buf.read(cs);    

         System.out.println(new String(cs,0,len));

         buf.close();

         client.close();

         server.close();

         System.out.println("信息已发送!");

       }

    }

    二、UDP编程:

    UDP主要使用以下两个类:

    数据报内容:DatagramPacket

    发送和接受内容:DatagramSocket

    先运行客户端,在运行服务器端。

    客户端接收数据代码:

    import java.net.DatagramPacket;

    import java.net.DatagramSocket;

    public class TcpClient {

       public static void main(String[] args) throws Exception {

         DatagramSocket socket=new DatagramSocket(3000);

         DatagramPacket pack=new DatagramPacket(new byte[1024],1024);

         socket.receive(pack);

         System.out.println(new String(pack.getData()));

       }

    }

    服务器端发送数据代码:

    package org.demo;

    import java.net.DatagramPacket;

    import java.net.DatagramSocket;

    import java.net.InetAddress;

    public class TcpServer {

       public static void main(String[] args) throws Exception {

         DatagramSocket socket=new DatagramSocket(9000);

         String str="hello world";

         DatagramPacket pack=new DatagramPacket(str.getBytes(),

               0,str.length(),InetAddress.getLocalHost(),3000);

         socket.send(pack);

       }

    }

  • 相关阅读:
    移动H5页面微信支付踩坑之旅(微信支付、单页面路由模拟、按钮加锁、轮询等常见功能)
    EDM模板编写踩坑指南(持续更新中)
    7天内我面试了10家公司,如何从命中率0%到命中率至70%?
    codewars.DNA题目几种解法分析(字符串替换)
    webpack+react搭建环境
    手机端访问网页 js根据浏览器区别转入手机端网址的URL
    树状数组————(神奇的区间操作)蒟蒻都可以看懂,因为博主就是个蒟蒻
    DFS————从普及到IOI(暴力骗分小能手)
    Manacher(马拉车)————O(n)回文子串
    离散化————实现梦想的算法
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429540.html
Copyright © 2011-2022 走看看