fork download
  1. package ccc.ClientSocketDemo1; // 這是命名空間
  2.  
  3. // 這裡是引用java的類別庫
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.ImageButton;
  8. import android.widget.TextView;
  9. import android.widget.Toast;
  10.  
  11. import java.io.BufferedReader; // 引用串流功能
  12. import java.io.DataInputStream;
  13. import java.io.IOException; // 引用IO例外功能
  14. import java.io.InputStreamReader; // 引用輸入串流讀取功能
  15. import java.io.PrintWriter;
  16. import java.net.InetAddress; // 引用網路IP位址功能
  17. import java.net.Socket; // 引用Socket網路功能
  18.  
  19. public class ClientSocketDemo1 extends Activity {
  20.  
  21. ImageButton imgButton;
  22. TextView TextView01;
  23.  
  24.  
  25. public static final int BUFFER_SIZE = 1024;
  26. private Socket socket = null;
  27. private PrintWriter out = null;
  28. private BufferedReader in = null;
  29. protected DataInputStream in2;
  30. // 程式進入點
  31. public void onCreate(Bundle savedInstanceState) {
  32. super.onCreate(savedInstanceState);
  33. setContentView(R.layout.main);
  34.  
  35. imgButton = (ImageButton) findViewById(R.id.imageButton);
  36. imgButton.setOnClickListener(new View.OnClickListener() {
  37. public void onClick(View v) {
  38.  
  39. TextView01.setText(receiveDataFromServerLine());
  40. }
  41. });
  42.  
  43. // 文字方塊
  44. TextView01 = (TextView) findViewById(R.id.TextView01);
  45.  
  46. // 用來存放伺服器IP位址的變數
  47. InetAddress serverIp;
  48.  
  49. // 嘗試連接Server
  50. try {
  51. // 設定IP bs2.to 140.112.172.2
  52. serverIp = InetAddress.getByName("140.112.172.2");
  53.  
  54. // 設定port
  55. int serverPort = 23;
  56.  
  57. // 初始socket連接
  58. socket = new Socket(serverIp, serverPort);
  59.  
  60. out = new PrintWriter(socket.getOutputStream());
  61. in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  62. in2 = new DataInputStream(this.socket.getInputStream());
  63. // 關閉連線
  64. //socket.close();
  65. } catch (IOException e) {
  66. // 出錯後顯示錯誤訊息
  67. TextView01.setText("Connect error.");
  68. }
  69. }
  70. private void disConnectWithServer() {
  71. if (socket != null) {
  72. if (socket.isConnected()) {
  73. try {
  74. in.close();
  75. out.close();
  76. socket.close();
  77. } catch (IOException e) {
  78. e.printStackTrace();
  79. }
  80. }
  81. }
  82. }
  83. //http://stackoverflow.com/questions/5893911/android-client-socket-how-to-read-data
  84. public String receiveDataFromServer() {
  85. try {
  86. String message = "";
  87. int charsRead = 0;
  88. char[] buffer = new char[BUFFER_SIZE];
  89.  
  90. if ((charsRead = in.read(buffer)) != -1) {
  91. message += new String(buffer).substring(0, charsRead);
  92. }
  93.  
  94. //disConnectWithServer(); // disconnect server
  95. return message;
  96. } catch (IOException e) {
  97. return "Error receiving response: " + e.getMessage();
  98. }
  99. }
  100.  
  101. public String receiveDataFromServerLine() {
  102. try {
  103.  
  104. return in.readLine();
  105. } catch (IOException e) {
  106. return "Error receiving response: " + e.getMessage();
  107. }
  108. }
  109. public String receiveDataFromServerLine2() {
  110. try {
  111.  
  112. return in2.readUTF();
  113. } catch (IOException e) {
  114. return "Error receiving response: " + e.getMessage();
  115. }
  116. }
  117. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:19: error: class ClientSocketDemo1 is public, should be declared in a file named ClientSocketDemo1.java
public class ClientSocketDemo1 extends Activity {
       ^
Main.java:4: error: package android.app does not exist
import android.app.Activity;
                  ^
Main.java:5: error: package android.os does not exist
import android.os.Bundle;
                 ^
Main.java:6: error: package android.view does not exist
import android.view.View;
                   ^
Main.java:7: error: package android.widget does not exist
import android.widget.ImageButton;
                     ^
Main.java:8: error: package android.widget does not exist
import android.widget.TextView;
                     ^
Main.java:9: error: package android.widget does not exist
import android.widget.Toast;
                     ^
Main.java:19: error: cannot find symbol
public class ClientSocketDemo1 extends Activity {
                                       ^
  symbol: class Activity
Main.java:21: error: cannot find symbol
	ImageButton imgButton;
	^
  symbol:   class ImageButton
  location: class ClientSocketDemo1
Main.java:22: error: cannot find symbol
	TextView TextView01;
	^
  symbol:   class TextView
  location: class ClientSocketDemo1
Main.java:31: error: cannot find symbol
	public void onCreate(Bundle savedInstanceState) {
	                     ^
  symbol:   class Bundle
  location: class ClientSocketDemo1
Main.java:32: error: cannot find symbol
		super.onCreate(savedInstanceState);
		^
  symbol:   variable super
  location: class ClientSocketDemo1
Main.java:33: error: package R does not exist
		setContentView(R.layout.main);
		                ^
Main.java:35: error: cannot find symbol
		imgButton = (ImageButton) findViewById(R.id.imageButton);
		             ^
  symbol:   class ImageButton
  location: class ClientSocketDemo1
Main.java:35: error: package R does not exist
		imgButton = (ImageButton) findViewById(R.id.imageButton);
		                                        ^
Main.java:36: error: package View does not exist
		imgButton.setOnClickListener(new View.OnClickListener() {
		                                     ^
Main.java:44: error: cannot find symbol
		TextView01 = (TextView) findViewById(R.id.TextView01);
		              ^
  symbol:   class TextView
  location: class ClientSocketDemo1
Main.java:44: error: package R does not exist
		TextView01 = (TextView) findViewById(R.id.TextView01);
		                                      ^
18 errors
stdout
Standard output is empty