数据的方法
- 建立socket连接,打开数据库连接。
- 循环接收客户端发送的数据,使用输入流读取数据,存入数据库。
- 如果没有数据可以读取,可以使用Thread.sleep()函数使线程等待一段时间再执行下一次循环。
- 在循环结束后,关闭输入流、输出流、socket连接和数据库连接。
示例代码:
public void readSocket() {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
Socket socket = serverSocket.accept();
// 建立数据库连接
Connection conn = DriverManager.getConnection("url", "user", "password");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
// 将数据存入数据库
String sql = "insert into tablename values(?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, line);
pstmt.executeUpdate();
}
// 关闭输入流、输出流 和 socket 连接
in.close();
socket.close();
// 关闭数据库连接
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
数据并更新UI
如果您要实现在Android上通过Socket连接接收数据库数据并更新UI,则可以按照以下步骤:
- 创建一个线程来处理Socket连接并接收数据。以下是一个简单的例子:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
// 创建Socket连接
Socket socket = new Socket("127.0.0.1", 1234);
// 获取输入流
InputStream inputStream = socket.getInputStream();
// 创建缓冲区
byte[] buffer = new byte[1024];
int len;
// 读取数据
while ((len = inputStream.read(buffer)) != -1) {
// 将读取到的数据解析为字符串
String data = new String(buffer, 0, len);
// 更新UI
runOnUiThread(new Runnable() {
@Override
public void run() {
// 在UI线程中更新UI
textView.setText(data);
}
});
}
// 关闭输入流和Socket连接
inputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
thread.start();
- 在Activity中启动线程并更新UI。以下是一个示例:
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取TextView
textView = findViewById(R.id.text_view);
// 启动线程
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// 处理Socket连接并接收数据
// ...
}
});
thread.start();
}
}
请注意,在更新UI时,必须在UI线程中执行。因此,在示例中,我们使用了runOnUiThread()方法来运行更新UI的代码。
这只是一个简单的例子。要实现更复杂的功能,您需要更多的代码来处理数据库数据的解析和处理。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/158865.html