package edu.sjtu.infosec.ismp.manager.comm.comm.send;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ConnectException;
import java.net.Socket;
import org.apache.log4j.Logger;
import edu.sjtu.infosec.ismp.util.EscapeUnescape;
public class SendMsg {
private static Logger logger = Logger.getLogger(SendMsg.class);
/**
* 手机短信 (单发)
* @param mobileNo
* @param message
* @param socketServerAddress
* @param prot
* @param accountId
* @param password
* @param serviceId
*/
public static String sendMobileMes(String mobile, String message, String socketIp, Integer socketProt) {
String serverSay = "";
try{
String toSay = "sms|"+mobile+"|"+message;//只用修改此参数,其他的均不用变
toSay = EscapeUnescape.escape(toSay);
Socket s1 = new Socket(socketIp, socketProt);
Socket s2 = new Socket(socketIp, socketProt);
logger.debug("Client启动成功!\n==========================================");
OutputStream s1out = s1.getOutputStream();
BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(s1out));
bw1.write(toSay);
bw1.close();
s1.close();
InputStream is1 = s2.getInputStream();
BufferedReader br1 = new BufferedReader(new InputStreamReader(is1));
String line = null;
while((line=br1.readLine()) != null){
if(serverSay!=null && !serverSay.equals("")){
serverSay = serverSay + "\n" + line;
}else{
serverSay = serverSay + line;
}
}
logger.debug("服务器说:" + serverSay);
br1.close();
s2.close();
logger.debug("==========================================\nClient操作结束!");
}catch(ConnectException connExc){
serverSay = "3";
logger.debug("Could not connect to the server!");
logger.debug("Client启动失败!\n==========================================");
}catch(IOException e){
serverSay = "4";
e.printStackTrace();
logger.debug("Client操作失败!\n==========================================");
}
return serverSay;
}
/**
* 手机群发
* @param mobileNos
* @param message
* @param socketServerAddress
* @param prot
*/
public static void sendMobileMes(String mobileNos[], String message,
String socketIp, Integer socketProt) {
try{
String serverSay = "";
String mobiles = "";
for(String mobile : mobileNos){
if(mobiles!=null && !mobiles.equals("")){
mobiles = mobiles + mobile;
}else{
mobiles = mobile;
}
}
String toSay = "sms|"+mobiles+"|"+message;//只用修改此参数,其他的均不用变
toSay = EscapeUnescape.escape(toSay);
Socket s1 = new Socket(socketIp, socketProt);
Socket s2 = new Socket(socketIp, socketProt);
logger.debug("Client启动成功!\n==========================================");
OutputStream s1out = s1.getOutputStream();
BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(s1out));
bw1.write(toSay);
bw1.close();
s1.close();
InputStream is1 = s2.getInputStream();
BufferedReader br1 = new BufferedReader(new InputStreamReader(is1));
String line = null;
while((line=br1.readLine()) != null){
if(serverSay!=null && !serverSay.equals("")){
serverSay = serverSay + "\n" + line;
}else{
serverSay = serverSay + line;
}
}
logger.debug("服务器说:" + serverSay);
br1.close();
s2.close();
logger.debug("==========================================\nClient操作结束!");
}catch(ConnectException connExc){
logger.debug("Could not connect to the server!");
logger.debug("Client启动失败!\n==========================================");
}catch(IOException e){
e.printStackTrace();
logger.debug("Client操作失败!\n==========================================");
}
}
/**
* 发送邮件
* @param email 邮箱地址
* @param message 邮件内容
* @param socketIp 远程服务IP
* @param socketProt 远程服务端口
*/
public static String sendMail(String email, String message, String socketIp, Integer socketProt){
String serverSay = "";
try{
String toSay = "email|"+email+"|"+message;//只用修改此参数,其他的均不用变
toSay = EscapeUnescape.escape(toSay);
Socket s1 = new Socket(socketIp, socketProt);
Socket s2 = new Socket(socketIp, socketProt);
logger.debug("Client启动成功!\n==========================================");
OutputStream s1out = s1.getOutputStream();
BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(s1out));
bw1.write(toSay);
bw1.close();
s1.close();
InputStream is1 = s2.getInputStream();
BufferedReader br1 = new BufferedReader(new InputStreamReader(is1));
String line = null;
while((line=br1.readLine()) != null){
if(serverSay!=null && !serverSay.equals("")){
serverSay = serverSay + "\n" + line;
}else{
serverSay = serverSay + line;
}
}
logger.debug("服务器说:" + serverSay);
br1.close();
s2.close();
logger.debug("==========================================\nClient操作结束!");
}catch(ConnectException connExc){
serverSay = email + ":false";
logger.debug("Could not connect to the server!");
logger.debug("Client启动失败!\n==========================================");
}catch(IOException e){
serverSay = email + ":false";
e.printStackTrace();
logger.debug("Client操作失败!\n==========================================");
}
return serverSay;
}
/**
* 发送桌面消息
* @param address
* @param message
*/
public static void sendNetMsg(String address, String message) {
try {
Process p = Runtime.getRuntime().exec(
"net send " + address + " " + message);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
String mess = "浦东安管平台:"
+ "\n中心端服务器中上传了一个软件 "
+ "\n\t软件名称:mail.exe"
+ "\n\t软件大小:123456字节";
String emailTo = "wuguojie@pengyue.com.cn";
String socketIp = "127.0.0.1";
int socketProt = 5432;
SendMsg.sendMail(emailTo, mess, socketIp, socketProt);
}
}