編輯:關於Android編程
本文介紹SOCKET 的服務端和客戶端的開發。 在本文中並沒有使用異步來對數據進行接收。 因為網上太多有關異步、存儲客戶端SOCKET的例子了, 但是他們的代碼都非常的多, 非常的繁瑣, 所以這裡就去掉了異步數據接收等。
首先介紹服務端: 這裡代碼實現的是服務端打開後就等待客戶端的連接, 當客戶端連接上後就接收消息, 並發消息回去後馬上關閉鏈接。
如果需要做類是聊天室軟件的話需要加上“異步處理”
[java]
public class SocketServer
{
private ServerSocket mServerSocket;
private static final int SERVER_PORT = 6000; //端口
public SocketServer()
{
}
public boolean startServer()
{
boolean bRet = false;
try
{
//創建一個SOCKET 服務器
mServerSocket = new ServerSocket(SERVER_PORT);
bRet = true;
} catch (Exception e)
{
// TODO: handle exception
}
return bRet;
}
public void recv()
{
try
{
Socket socket = mServerSocket.accept();
//拿到客戶端的輸入輸出(讀取,發送)
InputStream is = socket.getInputStream();
PrintWriter pw = new PrintWriter(socket.getOutputStream());
//這裡讀取客戶端第一次發來的消息 調試來看吧
byte buffer[] = new byte[1024];
int reCount = is.read(buffer);
String msgString = EncodingUtils.getString(buffer, "GB2312");
//我們發回一個"aa"給客戶端
pw.print("aa");
pw.flush();
//關掉這個連接
socket.close();
} catch (Exception e)
{
// TODO: handle exception
}
}
public void close()
{
try
{
mServerSocket.close();
} catch (Exception e)
{
// TODO: handle exception
}
}
}
客戶端:
[java]
public class SocketClient
{
private Socket socket;
private InputStream mInputStream;
private PrintWriter mPrintWriter;
private static final String SERVER_IP = "192.168.1.24";
private static final int SERVER_PORT = 6000;
public SocketClient()
{
}
public boolean connection()
{
boolean bRet = false;
try
{
//創建一個客戶端連接
InetAddress ia = InetAddress.getByName(SERVER_IP);
socket = new Socket(ia, SERVER_PORT);
//獲取這個客戶端連接SOCKET的輸入輸出
mPrintWriter = new PrintWriter(socket.getOutputStream(), true);
mInputStream = socket.getInputStream();
bRet = true;
} catch (Exception e)
{
// TODO: handle exception
}
return bRet;
}
//發送消息
public void sendMsg(String msg)
{
mPrintWriter.print(msg);
mPrintWriter.flush();
}
//讀取消息
public String readMsg()
{
String msgString = "";
try
{
byte buffer[] = new byte[1024];
int reCount = mInputStream.read(buffer);
msgString = EncodingUtils.getString(buffer, "GB2312");
} catch (Exception e)
{
// TODO: handle exception
}
return msgString;
}
public void close()
{
try
{
socket.close();
} catch (Exception e)
{
// TODO: handle exception
}
}
}
主:
[java]
private android.view.View.OnClickListener btnClickListener = new android.view.View.OnClickListener()
{
@Override
public void onClick(View v)
{
int id = v.getId();
switch (id)
{
case R.id.btn:
{
SocketClient socketClient = new SocketClient();
socketClient.connection();
socketClient.sendMsg("123");
socketClient.sendMsg("123");
socketClient.sendMsg("123");
socketClient.sendMsg("123");
String r = socketClient.readMsg();
socketClient.close();
Toast.makeText(SocketActivity.this, r, Toast.LENGTH_LONG).show();
}
break;
case R.id.btn_server:
{
SocketServer socketServer = new SocketServer();
socketServer.startServer();
socketServer.recv();
socketServer.close();
}
break;
default:
break;
}
}
};
作者:KnowHeart
現在的安卓手機都可將手機網絡當作熱點供別人使用,小米也不例外,那麼小米手機熱點怎麼開啟,下面就為大家帶來小米手機熱點使用設置方法。第一步:點開系統設置,選擇
MIUI 8是2016年5月10日小米科技發布的全新MIUI 8手機操作系統。小米公司官方此次推出的全新MIUI8系統,在各個方面都進行了大深度的優化。米迷
先來看下要實現效果圖:查閱資料後,發現網上大部分都是用這種方法實現的:多寫一個和需要懸浮的部分一模一樣的layout,先把浮動區域的可見性設置為gone。當浮動區域滑動到
Volley基本使用 //聲明一個請求隊列,請求隊列最好全局唯一。 RequestQueue mQueue = Volley.newReque