初学Android网络编程,还是很多不懂,这只是为了初学者渐渐接触Android网络编程。(
我也是初学者,并且第一次写博文),假如那里写着不对,敬请指出~~
-----------------------------------------------------------------------------美丽的分割线--------------------------------------------------------------------------------------------
这篇文章想实现的效果是客户端发送几个文字到服务器端,而服务器端接收文字并将其输出。
若想实现客户端和服务器端之间通讯,不用说,需要分别写这两端的代码。
直接贴上客户端代码,注释写得挺详细的。大家看看~~
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
/**
* 客户端代码
*
*/
public class ClientSocket {
public static void main(String[] args) {
try {
//创建一个socket,并开始连接服务器
Socket s = new Socket("192.168.1.105", 80);//"192.168.1.105"为服务器的ip地址,80为服务器的端口后,这两个都不是固定的。
//创建一个输出流
OutputStream os = s.getOutputStream();
//创建一个字节打印流,便于将数据储存到输出流中
PrintStream ps = new PrintStream(os);
//将字符串"hello"打印到输出流中
ps.println("hello");
//关闭流对象,释放资源
s.close();
ps.close();
os.close();
} catch (Exception e) {
e.printStackTrace();//将错误报告输出
}
}
}
以下为服务器端的代码:
import java.io.DataInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服务器端代码
*
*/
public class ServerSocket1 {
public static void main(String[] args) {
try {
//创建一个ServerSocket对象,并设置其端口
ServerSocket ss = new ServerSocket(80);
//设置一个无限循环,使服务器能无时无刻在检测是否有客户端发信息给服务器
while (true) {
//获取客户端的对象
Socket s = ss.accept();
//将客户端发送的输出流接收,在服务器的角度上看就是输入流
InputStream is = s.getInputStream();
//创建一个DataInputStream对象,便于解析所接受的输入流
DataInputStream dis = new DataInputStream(is);
//读取输入流中的一行数据,并将其赋值给一个字符串记录
String request = dis.readLine();
//将字符串输出
System.out.println(request);
//关闭Socket对象,节省资源
s.close();
}
} catch (Exception e) {
//将错误报告输出
e.printStackTrace();
}
}
注意:需要先执行服务器端的代码,再执行客户端的代码。
以下为代码的运行效果:
以下为源码:(导入即可使用)