android linux網絡連接,Android和Linux服務器之間的TCP連接

我正在編寫一個代碼,需要每秒從Android移動設備向臺式計算機(linux服務器)發送數據。由于數據經常發送,通過Http命中無法實現(因為會消耗時間),所以Tcp通信似乎是更好的選擇,因為android手機的數據可以通過此套接字編程快速發送。 客戶端的Android手機上的代碼是:Android和Linux服務器之間的TCP連接

import java.io.IOException;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.InetAddress;

import java.net.Socket;

import java.net.UnknownHostException;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

public class GetWebPage extends Activity {

//Handler h;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

final EditText eText = (EditText) findViewById(R.id.address);

final TextView tView = (TextView) findViewById(R.id.pagetext);

final Button button = (Button) findViewById(R.id.ButtonGo);

button.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

try {

Log.v("Tcp","Clicked the button");

InetAddress serveraddress=InetAddress.getByName("67.23.14.156");

Log.v("Tcp", "Got the InetAddress");

Socket s = new Socket(serveraddress,4447);

Log.v("Tcp","Got the Socket address");

OutputStream out = s.getOutputStream();

PrintWriter output = new PrintWriter(out);

output.println("Hello Android!");

out.close();

} catch (UnknownHostException e) {

tView.setText(e.toString());

Log.v("Tcp",e.toString());

} catch (IOException e) {

tView.setText(e.toString());

Log.v("Tcp",e.toString());

}catch (Exception e) {

tView.setText(e.toString());

}

}

});

}

}

服務器端代碼:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.ServerSocket;

import java.net.Socket;

public class ListenIncomingTcpConnection {

public static void main(String[] args) {

ServerSocket serverSocket=null;

Socket client=null;

try {

System.out.println("Creating the server object...");

serverSocket = new ServerSocket(4447);

System.out.println("Waiting for the connection...");

} catch (IOException e1) {

System.out.println(e1);

}

while (true) {

try {

client = serverSocket.accept();

System.out.println("Reading the content...");

} catch (IOException e1) {

System.out.println(e1);

e1.printStackTrace();

}

try {

BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

String str = in.readLine();

System.out.println("Reading the content.....");

} catch(Exception e) {

System.out.println(e);

} finally {

try{

client.close();

}catch(Exception e){

System.out.println(e);

}

}

}//while

}//PSVM

}

清單文件的代碼是:

package="com.spce" android:versionCode="1" android:versionName="1.0">

我已經執行了服務器端的代碼在linux機器上通過putty上的“java”命令。它在此行執行并停止“client = serverSocket.accept();” 當我執行的Android手機客戶端,它說:

單擊該按鈕 得到InetAddress是否 java.net.SocketException異常:沒有到主機的路由

我不能夠發現的這種情況的原因沒有路由到主機。

請幫忙解決問題。

2011-03-15

Khushboo

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382956.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382956.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382956.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux堆上的內存可執行嗎,pwn的藝術淺談(二):linux堆相關

這是linux pwn系列的第二篇文章,前面一篇文章我們已經介紹了棧的基本結構和棧溢出的利用方式,堆漏洞的成因和利用方法與棧比起來更加復雜,為此,我們這篇文章以shellphish的how2heap為例,主要介紹linux堆的相關數據結構…

arm嵌入式linux應用實例開發pdf,零點起步——ARM嵌入式Linux應用開發入門一書的源代碼...

代碼片段和文件信息屬性 大小 日期 時間 名稱----------- --------- ---------- ----- ----文件 24064 2016-03-20 09:49 零點起步——ARM嵌入式Linux應用開發入門\習題答案 (1).doc文件 24064 2016-03-20 09:50 零點起步——ARM嵌入式Lin…

linux上p圖工具,linux圖片處理工具GraphicsMagick安裝使用

安裝依賴包:yum install libpng libjpeg freetype libpng-devel libjpeg-devel libtool-ltdl-devel libtool-ltdl官網下載GraphicsMagick包官網地址:http://www.graphicsmagick.org/解壓編譯安裝:tar xf GraphicsMagick-1.3.25.tar.gz./confi…

manjaro linux下載軟件,manjaro linux

manjaro linux下載。manjaro linux是基于Arch Linux開發的Linux操作系統!對于裸服務器、虛擬機、IaaS 和 PaaS 方面都得到了加強,而且內置了強大的數據中心滿足商業的各種要求,是強大的混合云平臺和物理系統!manjaro linux介紹man…

linux 安裝qt 4.6軟件,QT學習之一:Linux下安裝QT之版本qt-4.6.3

在Linux中分別安裝應用于不同平臺的QT:PC;嵌入式X86;ARM。這三者PC版、嵌入式X86版和ARM版的區別主要體現在:當configure時分別加了不同的參數,具體區別是:PC平臺:在linux中全安裝qt&#xff0c…

linux kill命令使用方法,Linux初學者的killall命令(8個例子)

Linux初學者的killall命令(8個例子)我們已經討論了kill命令 ,如果你想在Linux中終止進程,你可以使用kill命令 。 但是,還有一個命令行實用程序可以用于相同的目的: killall 。 在本教程中,我們將使用一些易于理解的示例…

linux wait 信號丟失,wait函數族和SIGCHLD信號的關系

一、wait()和waitpid()函數的區別pid_t wait(int *status)進程一旦調用了wait,就立即阻塞自己,由wait自動分析是否當前進程的某個子進程已經退出,如果讓它找到了這樣一個已經變成僵尸的子進程, wait就會收集這個子進程的信息&…

linux socket接收不到16進制數據,C下通過socket收發十六進制數據解決辦法

C下通過socket收發十六進制數據系統是在LINUX下,下位機發送十六進制數據過來 上位機怎么解析 把數據以十六進制的形式顯示出來,發送十六進制又如何實現------解決方案--------------------socket不就是發16進制的么------解決方案--------------------那…

c語言 字符串 url,如何對URL字符串進行百分號編碼

在和web服務進行交互時,我們經常需要對URL中的特定字符和傳輸的表單數據進行百分號編碼。例如,’&’在百分號編碼時會變成’%26’。搞清楚 URL中哪部分的哪些字符應該進行百分號編碼了并不是件易事。最好的資料好像是RFC 3986和W3C HTML5。出于興趣和…

擊鼓傳花擊鼓次數相同c語言,JavaScript 實現擊鼓傳花游戲

大家小時候應該都玩過擊鼓傳花(Hot Potato)的游戲吧!一群小孩圍成一個圓圈,把花盡快的傳給旁邊的人。某一時刻傳花停止,這時花在誰手里,誰就退出圓圈結束游戲。重復此過程,直到剩下最后一個孩子,即為勝者。…

c語言查找字符串au,幾個C語言詞匯不懂,望老鳥們相助(俺是新手哦)

幾個C語言詞匯 auto break case char const continue default do double else enum extern float for goto if int long registerreturn short signed幾個C語言詞匯 auto break case char const continue default do double else enum extern float for goto if int long regis…

c語言中 %.2s,C2S是什么意思

1. The testing result indicates that TiO_2 has mineralized effect on C_2S, at the same time flux effect on reducing low general melting point of CaO-SiO_2 system and yielding much liquid phase, TiO_2 has definite stabilized effect on β-C_2S.結果隨著TiO2摻…

前端的c語言面試題,前端工程師面試題匯總(選擇題)

前端工程師面試題匯總(選擇題)時間:2017-12-05 來源:前端工程師面試題推薦作為一名前端工程師,我們必不可少的就是參加面試,面試過程中會遇到各類奇葩的問題,今天小編為大家匯總了一些相關的問題,希望可…

用英文單詞模擬數字計算c語言,C語言程序設計用英文單詞模擬數學計算

匿名用戶1級2010-05-09 回答最后輸出是用的是阿拉伯數字,這個你再改改吧, 小問題了。。。。#include #include #include #include #include int carry 0;int parse_int(const char *s, int len){char tens[10], units[10];memset(tens, 0, sizeof(tens)…

c語言猜數字游戲新建,C語言編程 如何構建一個簡單的猜數字小游戲

#include//生成隨機函數起點時用到time.hint main(){int number1 0, choice 0, number2 0;printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");//界面設置printf("$$$$$ 歡 迎 來 到 $$$$$\n");printf("$$$$$ 猜 數 字 …

c語言循環拆分成和,C語言拆分循環鏈表程序

創建一個循環鏈表,并將這個循環鏈表拆分成為兩個循環鏈表的示例程序,將以下代碼保存到一個源文件中:split_circular_linked_list.c, 如下所示 –#include #include struct node { int data; struct node *next; }; struct node *e…

pic單片機c語言讀eeprom,PIC16F877單片機內部EEPROM讀寫實例

;PIC16F877單片機內部EEPROM讀寫實例****************************************************************************************; This is a program to test the function of reading&writting for EEPROM.; YouCANOBServe the value of register(30H--?) buy changin…

C語言運行gis空間疊加分析,GIS空間疊加分析與緩沖區分析.doc

《地理信息系統》報告專 業 資源環境與城鄉規劃管理 姓 名 成 績班 級 學 號 日 期 2014/6/20目錄TOC \o "1-2" \h \u 14469 一、題目 23290 二、設計目的27200 三、設計背景2四、設計內容27200 四、步驟與過程27200 五、專題地圖 37521 四、總結分析 9題目佛山市順德…

組件文件已損壞或android內部模塊,android - Android Q更新后,模塊化系統組件在托管配置文件中不可用 - 堆棧內存溢出...

在從工作配置文件配置的設備設置應用中將操作系統從Android 9升級到10后,請停止運行。java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.applications.InstalledAppDetailsTop}: java.lang.NullPoin…

android文本復制自定義剪切板,android 剪切板-文本復制、粘貼

1. 粘貼-文本保存到剪切板中ClipboardManager clipboardManager (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);//創建ClipData對象ClipData clipData ClipData.newPlainText("orderNo", txt);//添加ClipData對象到剪切板中…