socet簡訊傳送與執行緒設計的問題
需求是這樣的,我從來沒有做過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());
}
}
一個小靈通簡訊傳送平臺,我們的現在是使用客戶端的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());
}
}
相關文章
- 執行緒池的設計問題執行緒
- 多執行緒程式設計,處理多執行緒的併發問題(執行緒池)執行緒程式設計
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- 多執行緒Demo學習(執行緒的同步,簡單的執行緒通訊)執行緒
- Udp接收和傳送的多執行緒進行(新手)UDP執行緒
- 簡訊貓程式設計的一些資料1(At指令傳送簡訊)程式設計
- 執行緒問題執行緒
- Java程式設計師面試中的多執行緒問題Java程式設計師面試執行緒
- Java併發程式設計之執行緒安全、執行緒通訊Java程式設計執行緒
- 子執行緒與UI執行緒的通訊(委託)執行緒UI
- dotnet 後臺執行緒傳送 X11 視窗訊息執行緒
- Android專案實踐——簡訊傳送介面的封裝與設計Android封裝
- 簡單的執行緒同步問題:兩個執行緒交替執行N次【Synchronized、Lock、ArrayBlockingQueue】執行緒synchronizedBloC
- 使用多執行緒實現郵件傳送執行緒
- java多執行緒執行問題Java執行緒
- GCD 與多執行緒程式設計GC執行緒程式設計
- 多執行緒問題執行緒
- Java多執行緒學習(3)執行緒同步與執行緒通訊Java執行緒
- 程式設計思想之多執行緒與多程式(2):執行緒優先順序與執行緒安全程式設計執行緒
- Jedis 與 MySQL的連線執行緒安全問題MySql執行緒
- 可執行資訊和傳送訊息的服務?
- 執行緒和執行緒池的理解與java簡單例子執行緒Java單例
- Posix執行緒程式設計指南(1)-執行緒建立與取消 (轉)執行緒程式設計
- android 傳送簡訊Android
- ArrayList 的執行緒安全問題執行緒
- 問題:執行緒的終止執行緒
- 關於執行緒的問題...執行緒
- 多執行緒鎖的問題執行緒
- android 主執行緒和子執行緒之間的訊息傳遞Android執行緒
- dubbo傳送過程編碼失敗,會喚醒傳送執行緒嗎?執行緒
- Java併發程式設計之執行緒篇之執行緒簡介(二)Java程式設計執行緒
- 簡訊傳送機的實現
- 【多執行緒】常見問題簡單總結執行緒
- Java執行緒與併發程式設計實踐----額外的執行緒能力Java執行緒程式設計
- 程式設計思想之多執行緒與多程式(3):Java 中的多執行緒程式設計執行緒Java
- 解決alertmanager重複傳送訊息的問題
- 併發程式設計與執行緒安全程式設計執行緒
- SimpleDateFormat 執行緒安全問題ORM執行緒