易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
首页
/
操作系统
/
Linux
/
Android Socket通信(下)
在Android Socket通信(上),我们完成了一个模拟器上运行的android socket通信实例程序:http://www.linuxidc.com/Linux/2012-06/61800.htm
今天我们将它移植到真实的android手机上,不过要
先确保环境配置正确,请参考上一讲
。主机的lwan0的ip地址是路由器自动分配的:192.168.1.100,android手机的ip地址是路由器自动分配的:192.168.1.101,可以在主机上ping手机,理论上是通的,不过很奇怪,我经常会碰到ping不通的情况,然后我在android手机里装了一个模拟终端,ping主机,一般都是通的,难道是android手机的问题?下面直接上代码,和上一讲的代码基本没有差别,改动的部分如下:1.
ip地址修改过了
2.
端口由9400改为了9500(呵呵,这是任意的,不改也可以的)
2.
src/RealclientActivity.java
package
real.client.com;
import
java.io.IOException;
import
java.io.PrintStream;
import
java.net.Socket;
import
java.net.UnknownHostException;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.Toast;
public
class
RealclientActivity
extends
Activity
{
/* 服务器地址 */
private
final
String SERVER_HOST_IP =
"192.168.1.100"
;
/* 服务器端口 */
private
final
int
SERVER_HOST_PORT =
9500
;
private
Button btnConnect;
private
Button btnSend;
private
EditText editSend;
private
Socket socket;
private
PrintStream output;
public
void
toastText(String message)
{
Toast.makeText(
this
, message, Toast.LENGTH_LONG).show();
}
public
void
handleException(Exception e, String prefix)
{
e.printStackTrace();
toastText(prefix + e.toString());
}
/** Called when the activity is first created. */
@Override
public
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
btnConnect.setOnClickListener(
new
Button.OnClickListener()
{
@Override
public
void
onClick(View v)
{
initClientSocket();
}
});
btnSend.setOnClickListener(
new
Button.OnClickListener()
{
@Override
public
void
onClick(View v)
{
sendMessage(editSend.getText().toString());
}
});
}
public
void
initView()
{
btnConnect = (Button)findViewById(R.id.btnConnect);
btnSend = (Button)findViewById(R.id.btnSend);
editSend = (EditText)findViewById(R.id.sendMsg);
btnSend.setEnabled(
false
);
editSend.setEnabled(
false
);
}
public
void
closeSocket()
{
try
{
output.close();
socket.close();
}
catch
(IOException e)
{
handleException(e,
"close exception: "
);
}
}
private
void
initClientSocket()
{
try
{
/* 连接服务器 */
socket =
new
Socket(SERVER_HOST_IP, SERVER_HOST_PORT);
/* 获取输出流 */
output =
new
PrintStream(socket.getOutputStream(),
true
,
"utf-8"
);
btnConnect.setEnabled(
false
);
editSend.setEnabled(
true
);
btnSend.setEnabled(
true
);
}
catch
(UnknownHostException e)
{
handleException(e,
"unknown host exception: "
+ e.toString());
}
catch
(IOException e)
{
handleException(e,
"io exception: "
+ e.toString());
}
}
private
void
sendMessage(String msg)
{
output.print(msg);
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图