Java網絡編程學習

近日學習webRTC,對於網絡編程與JS編程一頭霧水。只能踏實從最簡單的開始,本身底子實在太薄。java

(1)TCPweb

服務器端代碼:編程

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) UDPdom

服務器端:學習

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

客戶端:spa

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

運行結果:.net

相關文章
相關標籤/搜索