java网络编程二

UDP网络编程

1 流程



2 代码

服务端:

package cn.jingshan.udp;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;


/**
 * @author yuajings
 * @desc UDP服务端
 */
public class UDPServer {


public static void main(String[] args) throws IOException {
//创建监听套接字
DatagramSocket serverSocket = new DatagramSocket(9876);

        byte[] receiveData = new byte[1024];
        byte[] sendData = new byte[1024];
        while(true){
        //创建接收数据包、接收数据
        DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
        serverSocket.receive(receivePacket);
        String sentence = new String( receivePacket.getData());
        System.out.println("from client: " + sentence);
       
        //回复
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inStr = br.readLine();
sendData = inStr.getBytes();

InetAddress IPAddress = receivePacket.getAddress();
        int port = receivePacket.getPort();
        DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
        serverSocket.send(sendPacket);
        System.out.println("server: " + inStr);
        }
        
        //关闭套接字
        //serverSocket.close();
}
}


客户端:

package cn.jingshan.udp;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;


/**
 * @author yuajings
 * @desc UDP客户端
 */
public class UDPClient {

public static void main(String args[]) throws IOException {
//创建套接字
DatagramSocket clientSocket = new DatagramSocket();

byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
while(true) {
//发送数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inStr = br.readLine();
sendData = inStr.getBytes();

InetAddress IPAddress = InetAddress.getByName("localhost");
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
System.out.println("client:" + inStr);

//接收数据
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String receiveStr = new String(receivePacket.getData());
System.out.println("from server:" + receiveStr);
}

//关闭套接字
//clientSocket.close();
}
}


猜你喜欢

转载自blog.csdn.net/shanjingyuan/article/details/50176725