socket获取

来源:互联网 发布:网络劫持软件 编辑:程序博客网 时间:2024/05/21 22:26
/** * ip实体类 */public class IpEntity {private String ip;private int port;private int overTime;private String localIp;public int getOverTime() {return overTime;}public int getPort() {return port;}public void setPort(int port) {this.port = port;}public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public String getLocalIp() {return localIp;}public void setLocalIp(String localIp) {this.localIp = localIp;}public void setOverTime(int overTime) {this.overTime = overTime;}}
import java.io.FileInputStream;import java.io.InputStream;import java.util.Properties;import com.hdxinfo.smscenter.entities.IpEntity;/** * 获取ip实体类 */public class IpService {/** * 获取IpEntity的对象 * @return */public static IpEntity getIpEntity() {IpEntity ipEntity = new IpEntity();try {Properties pro = new Properties();String os = System.getProperty("os.name").substring(0,1);String configFile = null;//根据不同的操作系统获取配置文件的位置if(os.equals("w")||os.equals("W")){configFile = "d:\\config.ini";}else{configFile = "/config.ini";}InputStream in = new FileInputStream(configFile);pro.load(in);in.close();ipEntity.setIp(pro.getProperty("ip"));ipEntity.setPort(Integer.parseInt(pro.getProperty("port")));ipEntity.setLocalIp(pro.getProperty("localIp"));ipEntity.setOverTime(Integer.parseInt(pro.getProperty("overTime")));} catch (Exception e) {e.printStackTrace();} return ipEntity;}}
 
package com.hdxinfo.smscenter.services;import java.io.IOException;import java.net.InetSocketAddress;import java.net.Socket;import java.net.SocketAddress;
import com.hdxinfo.smscenter.entities.IpEntity;/** * socket服务类 */public class SocketService {private static Socket socket = null;/** * 生成socket * @return 返回socket实例 */private static Socket createSocket() {// 获取ip实体IpEntity ipEntity = IpService.getIpEntity();// 设置连接的参数String ip = ipEntity.getIp();int port = ipEntity.getPort();int overTime = ipEntity.getOverTime();SocketAddress remoteAddr = new InetSocketAddress(ip, port);socket = new Socket();try {socket.connect(remoteAddr, overTime);System.out.println("连接成功!");} catch (Exception e) {System.out.println("连接失败!");e.printStackTrace();return null;}return socket;}/** * 获取socket * @return */public static Socket getSocket() {if(socket!=null) {if(isSocketConnected()){return socket;}try {socket.close();socket=null;} catch (IOException e) {e.printStackTrace();}}return createSocket();}public static boolean isSocketConnected() {return socket.isConnected();}/** * 关闭连接 * @param socket * @return * @throws Exception */public static boolean closeSocket(Socket socket){boolean b = false;try {//如果socket不为空if(socket!=null) {//判断当前的socket是否连接着if (socket.isConnected()) {socket.close();b = true;}} else {//如果为空直接返回trueb = true;}} catch (IOException e) {e.printStackTrace();return false;}return b;}}