(1) Socket programming | Java network programming

Java network programming

(1) Socket programming | Java network programming

Socket basic use

        String hostName = p.getProperty("ServerIP"); // 获取服务器端IP,如:10.0.70.30
        String port = p.getProperty("ServerPort"); // 获取端口号,如:8080
        try {
    
    
            socket = new Socket(hostName, Integer.parseInt(port)); // 创建套接字对象
            oos = new ObjectOutputStream(socket.getOutputStream()); // 创建对象输出流
            ois = new ObjectInputStream(socket.getInputStream()); // 创建对象输入流
        } catch (Exception e) {
    
    
            JOptionPane.showMessageDialog(new JFrame(), "网络连接失败,请检查配置参数!");
            try {
    
    
                socket.close(); // 关闭套接字对象
            } catch (IOException e1) {
    
    
                e1.printStackTrace();
            }
            System.exit(0);
        }

Use Cases

package com.hk.client;

import com.hk.client.login.LoginFrame;
import com.hk.server.model.Oper;

import javax.swing.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.List;
import java.util.Properties;

/**
 * @author: shipleyleo
 * @create: 2023-05-27 18:22:36
 */
public class ClientMainClass {
    
    
    public static Socket socket; // 套接字
    public static ObjectInputStream ois; // Socket 对象输入流
    public static ObjectOutputStream oos; // Socket 对象输出流
    public static List flights; // 航班对象集合
    public static Oper currentUser; // 当前登录的网点
    public static ClientMainFrame clientFrame; // 客户端主界面
//    public static OrderFrame currentOrderFrame; // 当前订单界面

    public static void init() {
    
    
        Properties p = new Properties(); // 创建配置文件对象
        try {
    
    
            p.load(new FileInputStream(System.getProperty("user.dir") + "\\src\\com\\hk\\client\\client.properties")); // 读取配置文件
        } catch (IOException e) {
    
    
            JOptionPane.showMessageDialog(new JFrame(), "配置文件丢失或已损坏,请成功新定义配置文件!");
            System.exit(0);
        }

        String hostName = p.getProperty("ServerIP"); // 获取服务器端IP
        String port = p.getProperty("ServerPort"); // 获取端口号
        try {
    
    
            socket = new Socket(hostName, Integer.parseInt(port)); // 创建套接字对象
            oos = new ObjectOutputStream(socket.getOutputStream()); // 创建对象输出流
            ois = new ObjectInputStream(socket.getInputStream()); // 创建对象输入流
        } catch (Exception e) {
    
    
            JOptionPane.showMessageDialog(new JFrame(), "网络连接失败,请检查配置参数!");
            try {
    
    
                socket.close();
            } catch (IOException e1) {
    
    
                e1.printStackTrace();
            }
            System.exit(0);
        }
    }

    public static void main(String[] args) {
    
    
        ClientMainClass.init(); // 调用初始化方法
        new LoginFrame().showMe(); // 显示登录界面
    }

}


References

Guess you like

Origin blog.csdn.net/Shipley_Leo/article/details/131025611