android device socket 连接pc端的服务器总是不成功。
PC机上的服务器已经启动 PC机 "192.168.1.102" 侦听端口:4567
我也重新建了几个项目添加了<uses-permission android:name="android.permission.INTERNET" />
,但是还是异常每次调试都是跳到异常;
catch (IOException e)
{
e.printStackTrace();
} android device 代码如下:package com.socketTest.test;import android.app.Activity;
import android.os.Bundle;
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import android.util.Log;public class SocketTestActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Socket socket = null;
try
{
socket = new Socket( "192.168.1.102", 4567);
// 向服务器发送信息
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println("fsdf"); // 接受服务器的信息
BufferedReader br = new BufferedReader( new InputStreamReader(socket.getInputStream()));
String mstr = br.readLine();
if (mstr != null)
{
}
out.close();
br.close();
socket.close();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (Exception e)
{
//Log.e(DEBUG_TAG, e.toString());
}
}
}andriodmanifest.xml 文件内容如下:<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.socketTest.test"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="3" /> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SocketTestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<uses-permission android:name="android.permission.INTERNET" />
</intent-filter>
</activity> </application>
</manifest>
PC机上的服务器已经启动 PC机 "192.168.1.102" 侦听端口:4567
我也重新建了几个项目添加了<uses-permission android:name="android.permission.INTERNET" />
,但是还是异常每次调试都是跳到异常;
catch (IOException e)
{
e.printStackTrace();
} android device 代码如下:package com.socketTest.test;import android.app.Activity;
import android.os.Bundle;
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import android.util.Log;public class SocketTestActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Socket socket = null;
try
{
socket = new Socket( "192.168.1.102", 4567);
// 向服务器发送信息
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println("fsdf"); // 接受服务器的信息
BufferedReader br = new BufferedReader( new InputStreamReader(socket.getInputStream()));
String mstr = br.readLine();
if (mstr != null)
{
}
out.close();
br.close();
socket.close();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (Exception e)
{
//Log.e(DEBUG_TAG, e.toString());
}
}
}andriodmanifest.xml 文件内容如下:<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.socketTest.test"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="3" /> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SocketTestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<uses-permission android:name="android.permission.INTERNET" />
</intent-filter>
</activity> </application>
</manifest>
解决方案 »
- android 数据库连接有必要关闭吗?
- 在PC端DOS环境下输入adb devices查询不到设备信息,但是在用腾讯手机助手连接手机后,DOS下adb devices便可以查询到了,为什么?
- android:launchMode="singleTask"和startActivityForResult的疑惑
- android应用在摩托罗拉928上无法全屏显示的问题
- 为什么我的多点触屏函数,取到的点的x,y坐标不正确?
- Android Service的问题
- android 怎么刷新当前的页面
- android socket 问题请教,在线等!
- 关于异步加载图片库的使用
- Binary XML file line #51: Error inflating class <unknown>
- 关于dexclassloader 实现一种动态加载另一个apk中类的功能
- handler怎么传数据?
是局域网的话 需要使用android 命令工具,把端口和PC端口进行映射才能正常连接上。
这句是不是应该放到<application></application>的外层啊。还有如果用的模拟器测试的话,
socket = new Socket( "192.168.1.102", 4567);
应该改成socket = new Socket( "10.0.2.2", 4567);
这样可以么 还需要那什么端口可pc端口影射么
用真机的话用wifi也可以
要不你cmnet的话 需要装花生壳