Android 网络编程: SOCKET的简单使用。
本文介绍SOCKET 的服务端和客户端的开发。 在本文中并没有使用异步来对数据进行接收。 因为网上太多有关异步、存储客户端SOCKET的例子了, 但是他们的代码都非常的多, 非常的繁琐, 所以这里就去掉了异步数据接收等。
首先介绍服务端: 这里代码实现的是服务端打开后就等待客户端的连接, 当客户端连接上后就接收消息, 并发消息回去后马上关闭链接。
如果需要做类是聊天室软件的话需要加上“异步处理”
[java]
public class SocketServer
{
private ServerSocket mServerSocket;
private static final int SERVER_PORT = 6000; //端口
public SocketServer()
{
}
public boolean startServer()
{
boolean bRet = false;
try
{
//创建一个SOCKET 服务器
mServerSocket = new ServerSocket(SERVER_PORT);
bRet = true;
} catch (Exception e)
{
// TODO: handle exception
}
return bRet;
}
public void recv()
{
try
{
Socket socket = mServerSocket.accept();
//拿到客户端的输入输出(读取,发送)
InputStream is = socket.getInputStream();
PrintWriter pw = new PrintWriter(socket.getOutputStream());
//这里读取客户端第一次发来的消息 调试来看吧
byte buffer[] = new byte[1024];
int reCount = is.read(buffer);
String msgString = EncodingUtils.getString(buffer, "GB2312");
//我们发回一个"aa"给客户端
pw.print("aa");
pw.flush();
//关掉这个连接
socket.close();
} catch (Exception e)
{
// TODO: handle exception
}
}
public void close()
{
try
{
mServerSocket.close();
} catch (Exception e)
{
// TODO: handle exception
}
}
}
客户端:
[java]
public class SocketClient
{
private Socket socket;
private InputStream mInputStream;
private PrintWriter mPrintWriter;
private static final String SERVER_IP = "192.168.1.24";
private static final int SERVER_PORT = 6000;
public SocketClient()
{
}
public boolean connection()
{
boolean bRet = false;
try
{
//创建一个客户端连接
InetAddress ia = InetAddress.getByName(SERVER_IP);
socket = new Socket(ia, SERVER_PORT);
//获取这个客户端连接SOCKET的输入输出
mPrintWriter = new PrintWriter(socket.getOutputStream(), true);
mInputStream = socket.getInputStream();
bRet = true;
} catch (Exception e)
{
// TODO: handle exception
}
return bRet;
}
//发送消息
public void sendMsg(String msg)
{
mPrintWriter.print(msg);
mPrintWriter.flush();
}
//读取消息
public String readMsg()
{
String msgString = "";
try
补充:移动开发 , Android ,