使用TCP協議編寫一個網絡程序,設置服務器端的監聽端口是8002,當與客戶端建立連接後,服務器端向客戶端發送數據“Hello, world”,客戶端收到數據後打印輸出。
##
import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) throws Exception{
ServerSocket s=new ServerSocket(8002);
while (true) {
Socket s1=s.accept();
OutputStream os=s1.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
dos.writeUTF("Hello, world");
dos.close();
s1.close();
}
}
}
import java.io.DataInputStream;
import java.io.InputStream;
import java.net.Socket;
/**
* 使用TCP協議編寫一個網絡程序,設置服務器端的監聽端口是8002。
* 當與客戶端建立連接後,服務器端向客戶端發送數據“Hello, world”,客戶端收到數據後打印輸出。
*
* @author Vivinia
*
*/
public class TCPClient {
public static void main(String[] args) throws Exception{
Socket s1=new Socket("127.0.0.1", 8002);
InputStream is=s1.getInputStream();
DataInputStream dis=new DataInputStream(is);
System.out.println(dis.readUTF());
dis.close();
s1.close();
}
}
運行效果圖:
使用UDP協議編寫一個網絡程序,設置接收端程序的監聽端口是8001,發送端發送的數據是“Hello, world”。
##
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 使用UDP協議編寫一個網絡程序,設置接收端程序的監聽端口是8001,發送端發送的數據是“Hello, world”。
* @author Vivinia
*/
//發送端
public class UDPSend {
public static void main(String[] args) throws Exception{
DatagramSocket ds=new DatagramSocket(3000); //創建一個DatagramSocket對象
String str="Hello, world"; //要發送的數據
DatagramPacket dp=new DatagramPacket(str.getBytes(), str.length(),InetAddress.getByName("localhost"),8001);//創建一個要發送的數據包,包括數據,長度,接收端的ip及端口號
System.out.println("發送消息");
ds.send(dp); //發送數據
ds.close(); //釋放資源
}
}
import java.net.DatagramPacket;
import java.net.DatagramSocket;
//接收端
public class UDPReceive {
public static void main(String[] args) throws Exception{
byte[] buf=new byte[1024]; //創建一個1024的字節數組,用於接收數據
DatagramSocket ds=new DatagramSocket(8001); //定義一個DatagramSocket對象,監聽的端口號爲8954
DatagramPacket dp=new DatagramPacket(buf,1024); //定義一個DatagramPacket對象,用於接收數據
System.out.println("等待接收數據");
ds.receive(dp); //等待接收數據,沒有則會阻塞
String str=new String(dp.getData()); //獲取接收到的消息
System.out.println(str);
ds.close();
}
}