Java Socket通信及TCP/UDP总结及实例

本文总结了Java中的Socket通信,包括基于TCP和UDP的编程,并对比了两者的基本特点和应用场景。TCP提供可靠的连接,适用于需要保证数据完整性和顺序的场景,而UDP则更轻量级,适合实时性要求高的应用。文中还详细介绍了TCP和UDP的编程步骤。
摘要由CSDN通过智能技术生成

1、基于TCP的socket编程。
 java.net.ServerSocket是用来创建服务器端的套接字socket。
•  java.net.Socket是用来创建客户端的套接字socket。
•  InetAddress(java.net.InetAddress)类:用来表示IP地址。


凡事基于TCP创建的套接字可以叫做流套接字
•  服务器端相当于一个监听器,用来监听端口。
•  服务器与客服端之间的通讯都是输入输出流来实现的。

服务器端代码如下:TcpServer

public class TcpServer {
    private static boolean isruning = true;

    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(5583);
            while (isruning) {
                // 连接
                Socket socket = serverSocket.accept();
                System.out
                        .println("有新客户端(" + socket.getInetAddress() + ")连接。。");
                OutputStream stream = socket.getOutputStream();
                OutputStreamWriter writer = new OutputStreamWriter(stream);
                writer.write("hello socket!");
                writer.flush();
                writer.close();
                System.out
                        .println("客户端(" + socket.getInetAddress() + ")会话结束。。");
            }
            serverSocket.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

客户端代码如下

public class TcpClient {

    public static void main(String[] args) {
        String host = "localhost"; // 要连接的服务端IP地址
        int port = 5583; // 要连接的服务端对应的监听端口
        try {
            // 与服务端建立连接
            Socket client = new Socket(host, port);
            InputStream inputStream = client.getInputStream();
            InputStreamReader reader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(reader);
            String message = bufferedReader.readLine();
            System.out.println(message);
            bufferedReader.close();
            client.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
2、基于UDP的socket编程。
创建流程如下:
•   java.net.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值