ต้องการทำการเช็คผลฉลากกินแบ่งรัฐบาล โดยclientทำการกรอกเลขและนำส่งไปให้server และserverเปิดไฟล์txtมาเทียบค่าที่ทางclientส่งมา ว่าเท่ากันไหน ปัญหาติดตรงที่ฝั่งserverเช็คค่าจากfileไม่ได้ครับ ผลว่าผลผิดตรง while
ฝั่ง client
public class SearchLottery extends Activity { private final String DEBUG_TAG = "SearchLottery"; private Button buttonBack; private Button buttonOK=null; private EditText editTextInput=null; private TextView mTextView=null; private Socket socket = null; //private Spinner spin = null;
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search_lottery); // code กำหนดค่า spinner Spinner s = (Spinner) findViewById(R.id.spinnerDate); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.Date, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s.setAdapter(adapter); //ปุ่มย้อนกลับ buttonBack = (Button) findViewById(R.id.buttonBack); buttonBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); //ปุ่ม OK ของ Input Lottery mTextView = (TextView) findViewById(R.id.mTextView); editTextInput = (EditText) findViewById(R.id.editTextInput); buttonOK = (Button) findViewById(R.id.buttonOK); buttonOK.setOnClickListener(new OnClickListener(){ public void onClick(View V) { //String date = spin.getSelectedItem().toString(); String message = editTextInput.getText().toString() + " "; try { socket = new Socket("192.168.3.6", 4460); PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())), true); out.println(message); BufferedReader br = new BufferedReader( new InputStreamReader(socket.getInputStream())); String msg = br.readLine(); if (msg != null) { mTextView.setText(mTextView.getText() + " "+ msg + "\n"); } else { mTextView.setText(" Data error! "); } out.close(); br.close(); socket.close(); } catch (Exception e) { Log.e(DEBUG_TAG, e.toString()); } } }); }
}
ฝั่ง server
public class SimpleServer implements Runnable {
public void run() { try { ServerSocket ServerSocket = new ServerSocket(4460); Socket client = null; System.out.println("Server Started"); //String message = null; //String lot = null; while (true) { client = ServerSocket.accept(); System.out.println("Client accept : " + client); try { BufferedReader in = new BufferedReader( new InputStreamReader(client.getInputStream())); String str = in.readLine(); System.out.println("read : " + str); PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(client.getOutputStream())), true); FileReader freader = new FileReader("16oct11.txt"); BufferedReader inputFile = new BufferedReader(freader); String scan = inputFile.readLine(); int i=0; while (scan!=null){ //System.out.println(scan); //scan=inputFile.readLine(); if(scan.equals(str)) { i=1; break; } scan=inputFile.readLine(); } if(i==1) out.println("Found"); else out.println("No Data"); inputFile.close(); out.close(); in.close(); } catch (Exception e) { client.close(); System.out.println("close"); System.out.println(e.getMessage()); e.printStackTrace(); } } } catch (Exception e) { System.out.println(e.getMessage()); } } public static void main(String[] a)throws IOException{ Thread desktopServerThread = new Thread(new SimpleServer()); desktopServerThread.start(); }
ไม่ว่าใส่ค่าอะไร layout ออกมาโชว์ เป็น No Data ตลอดครับ ไม่ว่าจะใส่ค่าถูกหรือผิด ออกแบบเดิมตลอด
ลอง printf ตัวแปร str กับ scan ดูหรือยังครับ (ฝั่ง server)
ลองแล้วครับ ค่าถูกต้อง นั่งงมมาหลายวันแระครับ ไม่รู้ผิดตรงไหน
String message = editTextInput.getText().toString() + " ";
เพิ่มช่องว่างไปตัวนึงหรือเปล่าครับ
เพิ่มแล้วครับ
ฝั่ง client
public class SearchLottery extends Activity {
private final String DEBUG_TAG = "SearchLottery";
private Button buttonBack;
private Button buttonOK=null;
private EditText editTextInput=null;
private TextView mTextView=null;
private Socket socket = null;
//private Spinner spin = null;
}
ฝั่ง server
public class SimpleServer implements Runnable {
}
ไม่ว่าใส่ค่าอะไร layout ออกมาโชว์ เป็น No Data ตลอดครับ ไม่ว่าจะใส่ค่าถูกหรือผิด ออกแบบเดิมตลอด
ลอง printf ตัวแปร str กับ scan ดูหรือยังครับ (ฝั่ง server)
ลองแล้วครับ ค่าถูกต้อง นั่งงมมาหลายวันแระครับ ไม่รู้ผิดตรงไหน
String message = editTextInput.getText().toString() + " ";
เพิ่มช่องว่างไปตัวนึงหรือเปล่าครับ
เพิ่มแล้วครับ