TCP、UDP简单代码实现

TCP面向连接(三次握手),传输可靠,但速度慢

服务端代码如下:

 1 import java.io.IOException;
 2 import java.io.OutputStream;
 3 import java.io.PrintStream;
 4 import java.net.ServerSocket;
 5 import java.net.Socket;
 6 
 7 public class Server {
 8     public static void main(String[] args) throws IOException {
 9         ServerSocket socket = new ServerSocket(9999);
10         System.out.println("准备就绪,等待连接...");
11         Socket accept = socket.accept();
12         System.out.println("连接到"+accept.getInetAddress().getHostAddress());
13         OutputStream out = accept.getOutputStream();
14         PrintStream printStream = new PrintStream(out);
15         printStream.print("你好,这里是服务器!(不要回答)");
16         printStream.close();
17         out.close();
18         socket.close();
19 
20     }
21 }

 

客户端代码如下:

import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.util.Scanner;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1",9999);
        InputStream inputStream = socket.getInputStream();
        Scanner scanner = new Scanner(inputStream);
        while (scanner.hasNext()) {
            System.out.println(scanner.next());;
        }
        scanner.close();
        socket.close();
    }
}

 

UDP面向非连接,传输不可靠,速度快

接收端代码如下:

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 
 5 public class Receive {
 6     public static void main(String[] args) throws IOException {
 7         DatagramSocket socket = new DatagramSocket(110);
 8         byte[] bytes = new byte[1024];
 9         DatagramPacket packet = new DatagramPacket(bytes, 1024);
10         socket.receive(packet);
11         System.out.println(new String(packet.getData()));
12         socket.close();
13     }
14 }

发送端代码如下:

 1 import java.io.IOException;
 2 import java.net.*;
 3 
 4 public class Send {
 5     public static void main(String[] args) throws IOException {
 6         String s = "发送者:我来咯~";
 7         DatagramSocket socket = new DatagramSocket(10010);
 8         DatagramPacket packet = new DatagramPacket(
 9                 s.getBytes(),
10                 s.getBytes().length,
11                 InetAddress.getLocalHost(),
12                 110);
13         socket.send(packet);
14         socket.close();
15     }
16 }

 

posted @ 2023-04-04 19:07  *屏风光芒无限亮  阅读(20)  评论(0)    收藏  举报