如果要在安卓app里用到Socket通信,要满足:
1、在写代码的activity里import进Socket相关的包,这个很easy,如果你不知道要import什么包,也可以先不指定,可 以直接写例如"Socket sokt = new Socket();"这样的话,由于没有导入Socket的package,所以编译器会自动提示 你需要import某个包,然后按照提示点就ok了。
2、修改项目的"mamanifest.xml",这一点很容易被人忽视,尤其是初次在安卓里用Socket的童鞋,竟然会一头雾 水“我代码没问题,就是不知道为何运行不对?!!”网上很多教程都教你怎么在安卓里写Socket代码,很少有人 提出要设置manifest.xml才能开启安卓app网络权限,过程如下:
2.1双击选择AndroidManifest.xml
2.2在<manifest>标签后加入<uses-permission android:name="android.permission.INTERNET" />这句话,如下图 所示
完成上述两步之后,就可以在安卓app里用到internet权限,使用Socket了!
代码可以参考下面的:
//申请Socket相关的变量
String Serverip = "172.18.8.124";
int Serverport = 9050;
static Socket server;
//在发送/接收数居前,先建立socket链接
server = new Socket(Serverip, Serverport);
//发送内容(字符串s)
public void send(String s)
{
PrintWriter out = null;
try
{
out = new PrintWriter(server.getOutputStream());
}
catch (IOException e)
{
e.printStackTrace();
}
out.print(s);
out.flush();
}
//接收内容(存入字符串line)
public void client_output() throws UnsupportedEncodingException, IOException
{
BufferedReader in = null;
in = new BufferedReader(new InputStreamReader(server.getInputStream(), "GB2312"));
String line = null;
line = in.readLine();
}