資源簡介
這里實現一個跨平臺的socket通訊,Android手機作為客戶端向Ubuntu的QT平臺上的服務端發送一個字符命令,由于是只發送一個字符,這里我盡可能簡化socket通訊的過程以供后人參考。解決了跨平臺的socket傳輸字符編碼轉換的問題。我的文章地址:http://blog.csdn.net/u013453604/article/details/47733923

代碼片段和文件信息
//package?com.defonds.socket.begin;??
??
import?java.io.BufferedReader;??
import?java.io.DataInputStream;??
import?java.io.DataOutputStream;??
import?java.io.InputStreamReader;??
import?java.net.ServerSocket;??
import?java.net.Socket;??
??
public?class?Server?{??
????public?static?final?int?PORT?=?60000;//監聽的端口號?????
??????
????public?static?void?main(String[]?args)?{????
????????System.out.println(“服務器啟動...\n“);????
????????Server?server?=?new?Server();????
????????server.init();????
????}????
????
????public?void?init()?{????
????????try?{????
????????????ServerSocket?serverSocket?=?new?ServerSocket(PORT);????
????????????while?(true)?{????
????????????????//?一旦有堵塞?則表示服務器與客戶端獲得了連接????
????????????????Socket?client?=?serverSocket.accept();????
????????????????//?處理這次連接????
????????????????new?HandlerThread(client);????
????????????}????
????????}?catch?(Exception?e)?{????
????????????System.out.println(“服務器異常:?“?+?e.getMessage());????
????????}????
????}????
????
????private?class?HandlerThread?implements?Runnable?{????
????????private?Socket?socket;????
????????public?HandlerThread(Socket?client)?{????
????????????socket?=?client;????
????????????new?Thread(this).start();????
????????}????
????
????????public?void?run()?{????
????????????try?{????
????????????????//?讀取客戶端數據????
????????????????DataInputStream?input?=?new?DataInputStream(socket.getInputStream());??
????????????????String?clientInputStr?=?input.readUTF();//這里要注意和客戶端輸出流的寫方法對應否則會拋?EOFException??
????????????????//?處理客戶端數據????
????????????????System.out.println(“客戶端發過來的內容:“?+?clientInputStr);????
????
????????????????//?向客戶端回復信息????
????????????????DataOutputStream?out?=?new?DataOutputStream(socket.getOutputStream());????
????????????????//System.out.print(“請輸入:\t“);????
????????????????//?發送鍵盤輸入的一行????
????????????????//String?s?=?new?BufferedReader(new?InputStreamReader(System.in)).readLine();????
????????????????//out.writeUTF(s);????
??????????????????
????????????????out.close();????
????????????????input.close();????
????????????}?catch?(Exception?e)?{????
????????????????System.out.println(“服務器?run?異常:?“?+?e.getMessage());????
????????????}?finally?{????
????????????????if?(socket?!=?null)?{????
????????????????????try?{????
????????????????????????socket.close();????
????????????????????}?catch?(Exception?e)?{????
????????????????????????socket?=?null;????
????????????????????????System.out.println(“服務端?finally?異常:“?+?e.getMessage());????
????????????????????}????
????????????????}????
????????????}???
????????}????
????}????
}????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-08-17?23:39??Android與QT實現socket通信\
?????文件????????2737??2015-08-16?21:02??Android與QT實現socket通信\Server.java
?????目錄???????????0??2015-08-17?23:37??Android與QT實現socket通信\test1\
?????文件?????????213??2015-08-17?22:04??Android與QT實現socket通信\test1\main.cpp
?????文件????????1649??2015-08-17?22:32??Android與QT實現socket通信\test1\mainwindow.cpp
?????文件?????????531??2015-08-17?20:52??Android與QT實現socket通信\test1\mainwindow.h
?????文件????????1243??2015-08-17?20:33??Android與QT實現socket通信\test1\mainwindow.ui
?????文件?????????380??2015-08-17?20:26??Android與QT實現socket通信\test1\test1.pro
?????文件???????18375??2015-08-17?21:39??Android與QT實現socket通信\test1\test1.pro.user
?????文件??????????52??2015-08-17?23:38??Android與QT實現socket通信\test1\說明.txt
?????目錄???????????0??2015-08-17?23:38??Android與QT實現socket通信\Test_socket\
?????文件?????????475??2015-08-14?16:31??Android與QT實現socket通信\Test_socket\.classpath
?????文件?????????847??2015-08-14?16:31??Android與QT實現socket通信\Test_socket\.project
?????目錄???????????0??2015-08-17?23:36??Android與QT實現socket通信\Test_socket\.settings\
?????文件?????????177??2015-08-14?16:31??Android與QT實現socket通信\Test_socket\.settings\org.eclipse.jdt.core.prefs
?????文件?????????934??2015-08-16?16:43??Android與QT實現socket通信\Test_socket\AndroidManifest.xm
?????目錄???????????0??2015-08-14?16:31??Android與QT實現socket通信\Test_socket\assets\
?????目錄???????????0??2015-08-17?23:36??Android與QT實現socket通信\Test_socket\bin\
?????文件?????????934??2015-08-16?22:04??Android與QT實現socket通信\Test_socket\bin\AndroidManifest.xm
?????目錄???????????0??2015-08-17?23:36??Android與QT實現socket通信\Test_socket\bin\classes\
?????文件?????1428276??2015-08-17?20:35??Android與QT實現socket通信\Test_socket\bin\classes.dex
?????目錄???????????0??2015-08-17?23:36??Android與QT實現socket通信\Test_socket\bin\classes\android\
?????目錄???????????0??2015-08-17?23:36??Android與QT實現socket通信\Test_socket\bin\classes\android\support\
?????目錄???????????0??2015-08-17?23:36??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\
?????目錄???????????0??2015-08-17?23:36??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\appcompat\
?????文件?????????629??2015-08-17?17:57??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$anim.class
?????文件????????5136??2015-08-17?17:57??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$attr.class
?????文件?????????763??2015-08-17?17:57??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$bool.class
?????文件?????????594??2015-08-17?17:57??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$color.class
?????文件????????1530??2015-08-17?17:57??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$dimen.class
?????文件????????5191??2015-08-17?17:57??Android與QT實現socket通信\Test_socket\bin\classes\android\support\v7\appcompat\R$drawable.class
............此處省略103個文件信息
評論
共有 條評論