• Java网络编程学习


    近日学习webRTC,对于网络编程与JS编程一头雾水。只能踏实从最简单的开始,自己底子实在太薄。

    (1)TCP

    服务器端代码:

    import java.io.DataInputStream;  
    import java.io.DataOutputStream;
    import java.io.InputStreamReader;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class Server_test{
        public static void main(String[] args)
        {
            ServerSocket server= null;
            Socket clientSocket =null;
            String str= null;
            DataOutputStream out= null;
            DataInputStream in = null;
            try{
                server =  new ServerSocket(4331);
                clientSocket=server.accept();
                in =new DataInputStream( clientSocket.getInputStream());
                out=new DataOutputStream(clientSocket.getOutputStream());
                while(true)
                {
                    str=in.readUTF();
                    out.writeUTF("hello,I am server@");
                    out.writeUTF(str);
                    System.out.println("服务器收到:"+str);
                    Thread.sleep(1000);
                }
                }catch(Exception e){
                    e.printStackTrace();
                }
        }
    }

    客户端代码:

    import java.net.Socket;
    import java.io.DataInputStream;  
    import java.io.DataOutputStream;
    public class Client_test{
        public static void main(String [] args)
        {
            String str= null;
            Socket clientSocket;
            DataInputStream in = null;
            DataOutputStream out= null;
            try{
                clientSocket = new Socket("127.0.0.1",4331);
                in = new DataInputStream(clientSocket.getInputStream());
                out= new DataOutputStream(clientSocket.getOutputStream());
                out.writeUTF("你好!!");
                while(true){
                    str= in.readUTF();
                    out.writeUTF(((int)(Math.random()*10)+1)+"");
                    System.out.println("客户端收到:"+str);
                    Thread.sleep(1000);
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

    运行结果:

    (2) UDP

    服务器端:

    import java.io.*;
    import java.net.*;
    public class Datagram_server{
    public static void main(String[] args)
    {
        DatagramSocket serverSocket;
        try{
            serverSocket= new DatagramSocket(6000);
            byte[] recvBuf= new byte[100];
            DatagramPacket recvPacket= new DatagramPacket(recvBuf, recvBuf.length);
            serverSocket.receive(recvPacket);
            String recvStr=new String(recvPacket.getData(),0,recvPacket.getLength());
            System.out.println("Hello,"+recvStr);
            int port= recvPacket.getPort();
            InetAddress address= recvPacket.getAddress();
            String sendStr="服务器发送信息!";
            byte[] sendBuf;
            sendBuf=sendStr.getBytes();
            DatagramPacket sendPacket= new DatagramPacket(sendBuf, sendBuf.length,address,port);
            serverSocket.send(sendPacket);
            serverSocket.close();        
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    }

    客户端:

    import java.io.*;
    import java.net.*;
    public class Datagram_client{
    public static void main(String[] args){
        DatagramSocket clientSocket;
        try{
            clientSocket= new DatagramSocket();
            String sendStr= "你好,我是客户机";
            byte[] sendBuf;
            sendBuf=sendStr.getBytes();
            InetAddress addr= InetAddress.getByName("127.0.0.1");
            int port= 6000;
            DatagramPacket sendPacket= new DatagramPacket(sendBuf, sendBuf.length, addr, port);
            clientSocket.send(sendPacket);
            byte[] recvBuf= new byte[100];
            DatagramPacket recvPacket= new DatagramPacket(recvBuf,recvBuf.length);
            clientSocket.receive(recvPacket);
            String recvStr= new String(recvPacket.getData(),0,recvPacket.getLength());
            System.out.println("收到:"+recvStr);
            clientSocket.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    }

    运行结果:

  • 相关阅读:
    maven常见问题处理(3-3)Gradle编译时下载依赖失败解决方法
    maven入门(1-3)maven的生命周期
    maven入门(10)maven的仓库
    maven入门(9)Maven常用命令
    maven入门(8)maven的依赖管理
    maven入门(7)maven项目(组件)的坐标
    maven入门(6)maven的生命周期
    maven入门(1-4)使用eclipse构建maven项目
    maven入门(1-3)构建简单的maven项目
    maven常见问题处理(3-4)配置代理服务器
  • 原文地址:https://www.cnblogs.com/Martin-Ma/p/5056356.html
Copyright © 2020-2023  润新知