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();
    }
}
}

运行结果:

原文地址:https://www.cnblogs.com/Martin-Ma/p/5056356.html