zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    }

    运行结果:

  • 相关阅读:
    雅虎天气接口
    解决activeandroid no such table
    解决Genymotion Error: “Unable to load VirtualBox Engine” on Yosemite. VirtualBox installed
    存金宝 价格提示
    添加 SSH 公钥
    ImportError: No module named flask.ext.wtf 解决方法
    Cannot fetch index base URL https://pypi.python.org/pypi/ 解决方法
    mac下只遍历目录不遍历文件
    dubbo源代码编译打包错误解决
    maven 基本配置
  • 原文地址:https://www.cnblogs.com/Martin-Ma/p/5056356.html
Copyright © 2011-2022 走看看