socket有数据可读,如何判断数据全部被读取完毕

socket有数据可读,如何判断数据全部被读取完毕,第1张

sqlite3_step

描述:

执行已经编译好的SQL语句。

SQLITE_API int SQLITE_STDCALL sqlite3_step(

    sqlite3_stmt *pStmt

)

pStmt:SQL编译对象 

注释:

pStmt

SQL编译对象。此对象由 

sqlite3_prepare_v2函数或 sqlite3_prepare16_v2函数生成。

返回值:

SQLITE_BUSY:获取锁失败。

SQLITE_DONE:SQL语句已成功执行

SQLITE_ROW:SQL语句成功返回一条数据

SQLITE_ERROR:发生了错误(如:违反约束)。错误信息通过sqlite3_errmsg函数获取。

SQLITE_MISUSE:sqlite3_step函数使用不当。导致此错误的情况如下:

    1、sqlite3_step函数之前返回了SQLITE_ERROR或SQLITE_DONE。

    2、同一时刻两个或更多个线程正在使用相同的数据库连接句柄。

返回SQLITE_DONE,则表示SQL已执行完成。

加个判断

if (SqlHelper.connection.State == System.Data.ConnectionState.Closed)

SqlHelper.connection.Open()

else  (SqlHelper.connection.State == System.Data.ConnectionState.Broken)

{

SqlHelper.connection.Close()

SqlHelper.connection.Open()

}

上文已经学习了socket的一些基础知识 https://www.jianshu.com/p/15edcafb3013 ,我们接着学习一下Socket在实际应用中的读写 *** 作。

我们使用BufferedReader从Socket上读取数据,用串流来通过Socket连接来沟通。 Java一个优点就是大部分输入输出工作不在乎链接串流的上游实际上是什么。也即是说我们可以使用BufferedReader而不管串流是来自文件还是Socket。

1,建立对服务器的Socket连接

2,建立连接到Socket上底层输入的串流的InputStreamReader(底层和高层串流间的桥梁)

3,建立BufferedReader来读取

使用PrintWriter写数据到Socket上(当然也可以使用BufferedWriter,在此不赘述)

1,建立Socket连接

2,建立链接到Socket的PrintWriter(字符数据和字节间的转换桥梁,可以衔接String和Socket 两端)

3,写入数据

时间是很公平的,一分耕耘未必一分收获,十分耕耘必有一分收获。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6754877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存