java做伺服器,android做客戶端,實現資料傳輸
阿新 • • 發佈:2019-01-06
許久未動筆,有個小專案開始動工。
需要用一臺windows電腦做伺服器,在android端與其進行資料交換,實現一些業務。
簡單起見,用java寫這個伺服器,以前沒做過,試試水。很簡單的程式碼,純粹找思路。
伺服器端程式碼:
package com.test; import java.io.IOException; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class MyServer { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(8888); while (true) { System.out.println("execute 1\n"); Socket client = server.accept(); System.out.println("execute 2\n"); OutputStream out = client.getOutputStream(); System.out.println("execute 3\n"); String msg = "hello android"; out.write(msg.getBytes()); System.out.println("execute 4\n"); client.close(); } } catch (IOException e) { e.printStackTrace(); } } }
用了吉利的數字8888做埠,等android端連線上來,傳送一句話給android。
android端程式碼:
package com.teat; import java.io.IOException; import java.io.InputStream; import java.net.Socket; import java.net.UnknownHostException; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class TestSocketActivity extends Activity { private TextView myTextView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myTextView = (TextView) findViewById(R.id.textView1); try { myTextView.setText("0"); Socket socket = new Socket("192.168.1.100", 8888); myTextView.setText("1"); InputStream in = socket.getInputStream(); byte[] buffer = new byte[in.available()]; myTextView.setText("2"); in.read(buffer); myTextView.setText("3"); String msg = new String(buffer); myTextView.setText(msg); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
方便起見,ip地址是寫死的,通過dos視窗下的ipconfig指令檢視自己電腦的本地ip,然後把下面這行程式碼裡的ip修改成你電腦的ip就可以正常通訊了。
Socket socket = new Socket("192.168.1.100", 8888);
作者:jason0539