當前位置:首頁 » 安卓系統 » androidsocket伺服器端

androidsocket伺服器端

發布時間: 2024-06-24 21:42:16

1. android socket 接收伺服器返回數據,如何查找想要的數值

Android 客戶端代碼:

package com.ltb.SCActivity;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SCActivity extends Activity {
private TextView mRecvText = null;
private EditText mSentText = null;
private Button mSendRecvButton = null;
private Socket mSocket = null;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mRecvText = (TextView)findViewById(R.id.recvText);
mSentText = (EditText)findViewById(R.id.sentText);
mSendRecvButton = (Button)findViewById(R.id.sendRecvButton);

mSendRecvButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

String sentMessage = mSentText.getText().toString() + "\r\n";

try {
mSocket = new Socket("10.126.38.155", 12577);

Log.i("------SCActivity---before send---", sentMessage);

PrintWriter send = new PrintWriter(new BufferedWriter(new OutputStreamWriter(mSocket.getOutputStream())));
send.println(sentMessage);
send.flush(); //Important!!!!!!
//send.write(sentMessage);
Log.i("------SCActivity---after send---", sentMessage);

BufferedReader recv = new BufferedReader(new InputStreamReader(mSocket.getInputStream()));
Log.i("------SCActivity---Before ---recv.readLine()---", sentMessage);
String recvMsg = recv.readLine();
Log.i("------SCActivity---after ---recv.readLine()---", recvMsg);
if (recvMsg != null) {
mRecvText.setText(recvMsg);
} else {
mRecvText.setText("Cannot receive data correctly.");
}

send.close();
recv.close();
mSocket.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
}

伺服器端代碼:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server implements Runnable {
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(12577);
while (true) {
Socket client = serverSocket.accept();
System.out.println("accept");
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str = in.readLine();
System.out.println("read:" + str);
PrintWriter pout = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())), true);
//pout.write("Server Received Message: " + str);
pout.println("Server Received Message: " + str);

System.out.println("after send in server");
/* BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str = in.readLine();
System.out.println("read:" + str);*/

pout.close();
in.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
client.close();
System.out.println("close");
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

public static void main(String argv[] ) {
Thread pcServerThread = new Thread(new Server());
pcServerThread.start();
}
}

2. android socket用TCP方式client端怎麼監聽伺服器發送來的數據

伺服器端就是需要一個循環不停的接收,這樣才能保證伺服器能一直監聽客戶端傳過來的數據 你這是同步的,如果用非同步socket的話,BeginReceive裡面注冊了一個回調函數,在回調裡面再次調用BeginReceive就可以一直監聽了

3. 安卓socket編程的伺服器端的地址是什麼

服務端的地址就是你伺服器運行的電腦的ip地址,伺服器運行在哪個電腦,那個電腦的ip就是你伺服器端的地址。
使用socket編程的話創建伺服器端的時候一般都是ServerSocket來創建一個對象,通過new構造函數的時候傳入一個埠號,客戶端連接的時候除了使用伺服器端ip還有這個埠號,創建了對象之類,開啟無限循環,用這個對象調用accept()方法,這就是常說的心跳連接,這個方法會一直阻塞,直到有客戶端連接上。
客戶端連接的時候也需要創建Socket對象,實例化這個對象的時候就需要傳入伺服器端ip和埠號,然後就可以利用這個對象獲取輸入輸出流與伺服器交互。
同樣伺服器端的ServerSocket對象調用accept()方法返回的Socket對象也可以獲取輸入輸出流對象,然後利用這些流與客戶端交互。

4. 自己寫了一個Android的APP,想用socket連接伺服器

最近我在在寫一個APP,用到了socket,在自己電腦上搭建的伺服器,具體過程: 用eclipse寫Java代碼,創建一個serversocket,用來監聽客戶端的請求; 客戶端在發送數據前,首先創建一個Socket,然後直接請求伺服器即可。自己寫了一個Android的APP,想用socket連接伺服器

5. android 中socket 怎樣建立連接

參考如下內容,建立socker連接:
1.建立Socket連接

1) Socket 實現了TCP/IP協議,可以連接到網路上的上腦,並收發數據
2) ServerSocket 用於服務端,可以監聽服務埠,等待客戶端連接,連接後可以生成用於傳輸數據的Socket
3) 創建服務端
ServerSocket serverSocket = new ServerSocket(9999);
Socket socket = serverSocket.accept(); //等待客戶端連接
4) 創建客戶端
Socket socket = new Socket("100.100.28.26", 9999);
// 注意:注冊網路許可權;不能在主線程做網路連接
5) 客戶端發送消息
DataOutputStream writer = new DataOutputStream(socket.getOutputStream());
writer.writeUTF("嘿嘿,你好啊,伺服器.."); // 寫一個UTF-8的信息
6) 服務端接收消息
DataInputStream reader = new DataInputStream( socket.getInputStream());
String msg = reader.readUTF();
7) 伺服器等待說明

熱點內容
qq為什麼密碼修改好了就進不去 發布:2024-11-26 11:37:05 瀏覽:382
電容為啥耐壓越大存儲量越小 發布:2024-11-26 11:31:52 瀏覽:189
天然氣車載儲氣瓶泄露處置腳本 發布:2024-11-26 11:17:36 瀏覽:254
換ip的伺服器 發布:2024-11-26 11:17:29 瀏覽:75
容器平台怎麼看配置 發布:2024-11-26 11:06:09 瀏覽:940
qq的xml源碼 發布:2024-11-26 11:04:05 瀏覽:704
ip設計緩存設置 發布:2024-11-26 10:56:49 瀏覽:107
c語言k值 發布:2024-11-26 10:48:53 瀏覽:870
Java霸王大陸 發布:2024-11-26 10:44:52 瀏覽:704
樂高機器人怎麼編程 發布:2024-11-26 10:36:12 瀏覽:374