android socket读取字符节,Android客户端与服务器端通过SOCKET连接进行读写(将JSON数据转化为字符串后传输)...

public class SocketInteractServer {

private static final String TAG = "SocketInteractServer";

private int PORT = 7070;

private String IP = "109.105.3.230";

private Socket socket = null;

private DataInputStream in = null;

private DataOutputStream out = null;

public boolean isConnected() {//连接是否保持

return socket.isConnected();

}

public SocketInteractServer() {//初始化服务器IP和监听端口号

IP=Controller.getServerIP();

PORT=Controller.getServerPort();

connect();

}

public void connect() { //建立于服务器端的SOCKET连接并获得输入输出流

try {

socket = new Socket(IP, PORT);

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

try {

in = new DataInputStream(socket.getInputStream());//获得SOCKET输入流

} catch (IOException e) {

e.printStackTrace();

}

try {

out = new DataOutputStream(socket.getOutputStream());获得SOCKET输出流

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 从SOCKET中读取数据

* @return

*/

public String readStr() {

if (false == isReadable())

connect();// 重新连接

String messageString = null;

byte[] reply = new byte[1024];

int len = -1;

try {

len = in.read(reply);//读入的字节数

} catch (IOException e) {

e.printStackTrace();

}

if (len <= 0)

return null;

try {

messageString = new String(reply, "utf-8").trim();

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return messageString;

}

/**

* 向SOCKET中写入数据

* @return

*/

public boolean writeStr(String message) {

if(socket.isConnected()==false)

return false;

byte[] request=null;

try {

request = message.getBytes("utf-8");

} catch (UnsupportedEncodingException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

try {

out.write(request);

out.flush();

} catch (IOException e) {

e.printStackTrace();

return false;

}

return true;

}

public boolean isReadable() {

return isConnected() && in != null;

}

public boolean isWriteable() {

return isConnected() && out != null;

}

public void close() {

if (in != null)

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

if (out != null)

try {

out.close();

} catch (IOException e) {

e.printStackTrace();

}

if (socket != null)

try {

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值