3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
一開始要先在Manifest新增權限 Manifest: Server: import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import android.app.Activity; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.Handler; import android.widget.TextView; import android.net.wifi.WifiInfo; public class Socket_test extends Activity { TextView test; TextView test2; private Handler handler = new Handler(); private ServerSocket serverSocket; private String line ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); test = (TextView) findViewById( R.id.test ); test2 = (TextView) findViewById( R.id.test2 ); //建立Thread Thread fst = new Thread(socket_server); //啟動Thread fst.start(); } //取得IP private String getMyIp(){ //新增一個WifiManager物件並取得WIFI_SERVICE WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE); //取得wifi資訊 WifiInfo wifiInfo = wifi_service.getConnectionInfo(); //取得IP,但這會是一個詭異的數字,還要再自己換算才行 int ipAddress = wifiInfo.getIpAddress(); //利用位移運算和AND運算計算IP String ip = String.format("%d.%d.%d.%d",(ipAddress & 0xff),(ipAddress >> 8 & 0xff),(ipAddress >> 16 & 0xff),(ipAddress >> 24 & 0xff)); return ip; } private Runnable socket_server = new Runnable(){ public void run(){ handler.post(new Runnable() { public void run() { test.setText("Listening...." + getMyIp()); } }); try{ //建立serverSocket serverSocket = new ServerSocket(1234); //等待連線 while (true) { //接收連線 Socket client = serverSocket.accept(); handler.post(new Runnable() { public void run() { test.setText("Connected."); } }); try { //接收資料 DataInputStream in = new DataInputStream(client.getInputStream()); line = in.readUTF(); while (line != null) { handler.post(new Runnable() { public void run() { test2.setText(line); } }); } break; } catch (Exception e) { handler.post(new Runnable() { public void run() { test.setText("傳送失敗"); } }); } } }catch(IOException e){ handler.post(new Runnable() { public void run() { test.setText("建立socket失敗"); } }); } } }; } Client: import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; import java.net.SocketException; import java.net.UnknownHostException; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class Socket_test extends Activity { TextView test; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); test = (TextView) findViewById( R.id.test ); InetAddress serverAddr = null; SocketAddress sc_add = null; Socket socket = null; //要傳送的字串 String message = "Hello Socket"; try { //設定Server IP位置 serverAddr = InetAddress.getByName("120.119.112.168"); //設定port:1234 sc_add= new InetSocketAddress(serverAddr,1234); socket = new Socket(); //與Server連線,timeout時間2秒 socket.connect(sc_add,2000); //傳送資料 DataOutputStream out = new DataOutputStream(socket.getOutputStream()); out.writeUTF(message); //關閉socket socket.close(); } catch (UnknownHostException e) { test.setText("InetAddress物件建立失敗"); } catch (SocketException e) { test.setText("socket建立失敗"); } catch(IOException e) { test.setText("傳送失敗"); } } } Categories: Android 3 Comments Sky · 3 月 9, 2012 at 9:32 下午 哈囉 偶然看到你的文章 想問你 檔案之間傳輸 client端 我要往哪些方面下手 困擾很久了~ My Homepage · 8 月 20, 2012 at 3:59 上午 … [Trackback]… […] Read More here: blog.johnsonlu.org/?p=989 […]… URL · 4 月 10, 2018 at 12:53 下午 … [Trackback] […] Read More here: blog.johnsonlu.org/androidsocket/ […] Comments are closed. 分類 Android AngularJS API Blueprint Chrome Database MySQL DataStructure Docker Editor Vim Firefox Git GitLab Google API Hadoop Language Go Java JavaScript jQuery jQueryChart Node.js Vue PHP Laravel ZendFramework Python Mac Network Cisco DLink Juniper Oauth Server Apache Share Unix FreeBSD Linux WebDesign Bootstrap CSS HTML Wordpress Search 搜尋關鍵字:

本文由blogjohnsonluorg提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦