編輯:關於Android編程
Socket 通信
1.UDP實現 (DatagramSocket)
【客戶端】
//首先創建一個DatagramSocket對象
DatagramSocket socket = new DatagramSocket(4567);
//創建一個InetAddress
InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
String str = "hello"; //這是要傳輸的數據
byte data [] = str.getBytes(); //把傳輸內容分解成字節
//創建一個DatagramPacket對象,並指定要講這個數據包發送到網絡當中的哪個、地址,以及端口號
DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,4567);
//調用socket對象的send方法,發送數據
socket.send(packet);
【服務器端】
//創建一個DatagramSocket對象,並指定監聽的端口號
DatagramSocket socket = new DatagramSocket(4567);
byte data [] = new byte[1024];
//創建一個空的DatagramPacket對象
DatagramPacket packet = new DatagramPacket(data,data.length);
//使用receive方法接收客戶端所發送的數據,
//如果客戶端沒有發送數據,該進程就停滯在這裡
socket.receive(packet);
String result = new String(packet.getData(),packet.getOffset(),packet.getLength());
2.TCP通信
【客戶端】
創建一Socket對象並指明服務器端的IP及端口號
Socket socket = new Socket("192.168.1.0",45678);
//向服務器發送消息
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
out.println(message);
//從服務器接收消息
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String rString = is.readLine().toString();
【服務器端】
//創建一個ServerSocket對象,並讓這個Socket在45678端口監聽
serverSocket = new ServerSocket(45678);
//調用ServerSocket的accept()方法,接受客戶端所發送的請求,
//如果客戶端沒有發送數據,那麼該線程就停滯不繼續
Socket socket = serverSocket.accept();
//從Socket當中得到InputStream對象
InputStream inputStream = socket.getInputStream();
byte buffer [] = new byte[1024*4];
int temp = 0;
//從InputStream當中讀取客戶端所發送的數據
while((temp = inputStream.read(buffer)) != -1)
{
String str = new String(buffer,0,temp);
//接下來可以對從客戶端接收到的消息做處理
}
【Socket獲取客戶端IP地址及端口號】
Socket類包含一些非常有用的屬性,這些屬性允許確定關於正在連接的客戶端的信息。其中關鍵信息之一
是返回EndPoint對象的RemoteEndPoint屬性。EndPoint類本身是抽象的,要想收集有用的信息,需·要把
EndPoint強制類型轉換為IPEndPoint對象。IPEndPoint類包含遠程客戶端的IP地址和端口號。具體用法如下:
TcpListener tcpl=new TcpListener(port);
Socket s=tcpl.AcceptSocket();
label1.text=((IPEndPoint)s.RemoteEndPoint).Address.ToString();
label2.text=((IPEndPoint)s.RemoteEndPoint).Port.ToString();
作者:zjbpku
ViewPager作為Android最常用的的組件之一,相信大家在項目中會頻繁的使用到的,例如利用ViewPager制作引導頁、輪播圖,甚至做整個app的表
啦啦啦在上一個項目中有用到BLE低功耗藍牙開發,當時baidu google了很多資料,但大多數都是千篇一律,英文文檔我這種渣渣又看不懂。。。總之剛開始查的很痛苦。所以要
從事Android開發,免不了會在應用裡嵌入一些廣告SDK,在嵌入了眾多SDK後,發現幾乎每個要求在AndroidManifest.xml申明Activity的廣告SDK
一、圖片預覽:一、實現功能:需求要實現布局中為圓形圖片,圖片背景與圖標分開且合並到一個ImageView。二、具體實現:XML中布局中定義ImageView,關健設置兩個