socet短信发送与线程设计的问题

os586 2007-09-13 04:08:04
需求是这样的,我从来没有做过socket与线程的东西:现在有这样的需求:

一个小灵通短信发送平台,我们的现在是使用客户端的socket然后向小灵通平台服务发送一个串,串的格式是这样的:
out.println("<FROM:10060><TO:" + called_num + "><MSG: DY " + info + ">\r\n");
这其中变量 called_num是电话号码,而info是短信内容

要求有短信群发,并且要求反馈回正确的短信发送结果。
平台上是这样提供的:

当你发送成功后,会返回ST_OK的串值,失误则会发送ST_ER,
现在有一个重要通知要发送,发送前选中要发送的人,包括群发。然后提交后会有一个反馈结果:比如是给****发送成功,给****发送失误。并且要求支持有重发功能,但是如果使用重发功能的话,这个返回结果就会很慢才出来,因为要等它发送规定的次数后才会显示结果,这个问题需要如何解决?


另外一点,我们需要进行线程设计,把小灵通短信发送这一部分单独拿出来。比如说通知内容是一部分,小灵通发送可以放到线程当中这样设计是否合理?而反馈结果要写入数据库表当中,这样的话我应当在线程中的哪个部分处理?

还有一点就是,在socket当中进行读取返回值时,会不会很慢?

线程这一部分我该如何设计?希望各位做过socket的朋友给些意见,这个问题困挠我好久了,急死人了!

下面附上短信发送的函数:
public void SMSsend(String phone, String sms) {
//BufferedReader in;
BufferedInputStream in;
PrintWriter out;

String called_num = phone;
String info = sms;
try {
socket = new Socket(hostIP, Integer.parseInt(hostPort));
//in = new BufferedReader( new InputStreamReader(socket.getInputStream()));
in = new BufferedInputStream(socket.getInputStream());
out = new PrintWriter(socket.getOutputStream(), true);
out.println("<FROM:10060><TO:" + called_num + "><MSG: DY " + info + ">\r\n");

byte[] tmp=new byte[5];
in.read(tmp);
String str=new String(tmp);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
...全文
134 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
baobao28 2007-09-13
  • 打赏
  • 举报
回复
public class testthread extends Thread{

public testthread() {

}

public void run(){
try {
sleep(5000);//这里模拟你的socket执行用时
test.bac="this is thread backmessage";
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
baobao28 2007-09-13
  • 打赏
  • 举报
回复
怎么socket通信不用我告诉你了吧,下面把起线程执行socket通信后如何取返回值的方法告诉你代码如下:
public class test {
public static String bac;

public test() {
testthread td=new testthread();
td.start();

while (true){
try {
Thread.sleep(1000);
if (td.getState().toString().equals("TERMINATED")){
System.out.println(bac);
break;
}

System.out.println(td.getState());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

public static void main(String[] args) {
new test();
}
}
内容概要:本文围绕基于分布鲁棒优化的风电不确定性机组组合问题展开研究,提出了一种能够有效应对风电出力不确定性的数学模型与求解方法。通过构建分布鲁棒优化模型,充分考虑风电预测误差的概率分布特征及其不确定性集合的数学表达,在保障电力系统安全运行的前提下,优化发电机组的启停计划与出力分配,从而提升调度方案的经济性与鲁棒性。文中系统阐述了模型的理论基础、不确定性集合的构造方式、目标函数与约束条件的设计,并结合Matlab代码实现了算法仿真与案例验证,展示了该方法在不同场景下的适应能力与性能优势。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力,从事新能源并网调度、电力系统运行优化、能源系统建模等方向的研究人员、高校研究生以及相关领域的工程技术开发者。; 使用场景及目标:①应用于高比例可再生能源接入背景下的电力系统机组组合决策,增强调度方案对风电波动的抵御能力;②为电力市场环境中的发电计划编制与日前调度提供科学依据和技术支持;③作为分布鲁棒优化理论在能源系统不确定性建模中应用的教学与科研案例,推动相关算法的推广与改进。; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解流程,重点关注不确定性集的设定逻辑、鲁棒性参数的选择以及算法实现细节,可进一步拓展至多能源耦合系统或多时间尺度调度场景的研究。
内容概要:本文提出了一种结合蒙特卡洛模拟与拉格朗日松弛法的分散式优化方法,用于解决电动汽车充电站在分时电价机制下的有序充电调度问题。通过蒙特卡洛方法模拟电动汽车充电行为的随机性,生成多场景充电负荷数据,并构建以降低电网负荷波动和用户充电成本为目标的优化模型。采用拉格朗日松弛法对问题进行解耦,实现各电动汽车在保护用户隐私的前提下自主参与调度决策,有效提升了计算效率与实际应用可行性。仿真实验验证了该方法在削峰填谷、减少用户电费支出以及增强电网运行稳定方面的优越性能; 适合人群:具备电力系统优化、智能交通系统、运筹学或能源管理等相关背景的研究生、科研人员及工程技术人员; 使用场景及目标:①应用于城市规模化充电站集群的分散式调度系统设计与优化;②研究分时电价政策下用户充电行为与电网负荷之间的互动响应关系;③为高比例电动汽车接入场景下的电网协同控制提供算法支持与仿真验证平台; 阅读建议:读者应结合提供的Matlab代码,深入理解蒙特卡洛场景生成与拉格朗日松弛算法的实现逻辑,建议在复现过程中调整电价策略、用户数量等关键参数,观察其对调度效果的影响,并可进一步拓展至多目标优化框架或引入可再生能源出力不确定性进行联合建模研究。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧