android简单服务器的搭建
昨天,組長讓我試著搭一個服務器,用于做客戶端app的登錄與注冊功能。以前一直以為做android只需要寫好app就可以,這次發行可以嘗試服務器的編寫,也讓我學會了做android開發不僅要寫好客戶端,服務器最好也要會一點。由于此次博客會比較難懂,有問題的人可以給我留言,我看到后會恢復,記得點贊。
1.首先,在網上下載eclipse,這是我的下載eclipse的地址:
http://download.csdn.net/download/varyall/9485315
2,下載Tomcat,這是我的下載eclipse的地址:
http://download.csdn.net/detail/u010329101/7816333
?
3,在eclipse配置Tomcat,具體比較麻煩,只是新建一個web工程,在點擊new Running 按鈕后把自己Tomcat的路徑關聯上,具體可以參考這個博客。
http://blog.csdn.net/jiuqiyuliang/article/details/48120725
4,新建一個測試的代碼,在scr包下寫入服務器代碼。
package com;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Test {
?public static void main(String[] args) throws SQLException {
//??Scanner sc=new Scanner(System.in);
//??System.out.println("請輸入姓名");
//??String name=sc.next();
//??System.out.println("請輸入性別");
//??String sex=sc.next();
//??System.out.println("請輸入年齡");
//??int age=sc.nextInt();
??
??JDBCUtil j=new JDBCUtil();
//??String sql="insert into student values(null,?,?,?,now())";
//??Object[] obj={name,sex,age};
//??String sql="update student set age=age+1 where id=4";
//??Object[] obj=null;
??
//??String sql="delete from student";
//??Object[] obj=null;
??
??String? sql="select * from student";
??ResultSet rs=j.query(sql);
??while(rs.next()){
???int id=rs.getInt(1);
???String n=rs.getString(2);
???String s=rs.getString(3);
???int a=rs.getInt(4);
???String tdate=rs.getString(5);
???System.out.println(id+"\t"+n+"\t"+s+"\t"+a+"\t"+tdate);
???
??}
??
??
//??int k=j.update(sql, obj);
//??if(k!=0){
//???System.out.println("添加成功!");
//??}else{
//???System.out.println("添加失敗!");
//??}
??
??
??
?}
}
?
5,編寫android客戶端代碼。
package com.zviewtech.videonetclient.mclient; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; public class MainActivity extends ActionBarActivity {private TextView myTextView; private Button mBtnConnect; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.tv_info); mBtnConnect=(Button)findViewById(R.id.btn_connect); mBtnConnect.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {new Thread(new Runnable() {@Override public void run() {Socket socket = null; try {//創建一個流套接字并將其連接到指定主機上的指定端口號 socket = new Socket("192.168.1.190", 8888); //讀取服務器端數據 DataInputStream input = new DataInputStream(socket.getInputStream()); //向服務器端發送數據 DataOutputStream out = new DataOutputStream(socket.getOutputStream()); String str = "I am Client"; out.writeUTF(str); final String ret = input.readUTF(); runOnUiThread(new Runnable() {@Override public void run() {myTextView.setText(ret); Toast.makeText(MainActivity.this,ret,Toast.LENGTH_SHORT).show(); }}); System.out.println("服務器端返回過來的是: " + ret); out.close(); input.close(); } catch (Exception e) {System.out.println("客戶端異常:" + e.getMessage()); } finally {if (socket != null) {try {socket.close(); } catch (IOException e) {socket = null; System.out.println("客戶端 finally 異常:" + e.getMessage()); }}}}}).start(); }}); }}?
6,編寫布局界面的代碼。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:id="@+id/tv_info" android:text="hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:layout_below="@+id/tv_info" android:text="Connect" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_connect"/> </RelativeLayout>?
?
由于需要訪問網絡,注意在manifest文件中加入網絡權限
<uses-permission android:name="android.permission.INTERNET"/>?
這樣,先運行服務器的程序,然后運行android客戶端,就可以實現簡單的通訊了。
總結
以上是生活随笔為你收集整理的android简单服务器的搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片的压缩处理
- 下一篇: EditView设置边框