android 网络编程实验
时间: 2023-10-18 10:09:36 浏览: 59
网络编程是Android开发中非常重要的一部分,主要涉及到Socket通信、HTTP网络请求和Websocket等。下面是一个简单的Android网络编程实验:
实验目的:通过使用Socket通信实现Android客户端与服务器的通信。
实验步骤:
1.创建一个Android工程,并在MainActivity中布局一个EditText和一个Button。
2.在MainActivity中添加以下代码:
```java
private EditText etContent;
private Button btnSend;
private Socket socket = null;
private OutputStream outputStream = null;
private InputStream inputStream = null;
private String ip = "192.168.1.100";//服务器的IP地址
private int port = 8888;//服务器的端口
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etContent = findViewById(R.id.et_content);
btnSend = findViewById(R.id.btn_send);
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String content = etContent.getText().toString();
new Thread(new Runnable() {
@Override
public void run() {
try {
if (socket == null) {
socket = new Socket(ip, port);
outputStream = socket.getOutputStream();
inputStream = socket.getInputStream();
}
outputStream.write(content.getBytes());
outputStream.flush();
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
String result = new String(buffer, 0, len);
Log.d("MainActivity", "result:" + result);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
if (socket != null) {
socket.close();
}
if (outputStream != null) {
outputStream.close();
}
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
3.运行程序,在EditText中输入内容,点击Button发送数据,程序会将数据通过Socket通信发送到服务器,并接收服务器返回的数据。
注意事项:
1.需要在AndroidManifest.xml文件中添加网络权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
2.由于网络通信是耗时操作,所以需要在子线程中进行。
3.需要在程序退出时关闭Socket、输入流和输出流,以免造成资源浪费。
4.需要保证手机和服务器在同一局域网内,才能正常通信。