
接收函数内,一开始就readAll(),已经把数据都读取了,所以后面就没有可读数据了,所以后面不用判断bytesAvaliables()。
接收的时候,不要直接接收到QString中。应该先读取一个长度值(quint16),再根据长度值去读取QByteArray,再把读取到的QByteArray放到QString中。然后再判断bytesAvaliables是否还有剩余。有剩余,就再接收长度值+QByteArray。。。。
1、将字符串数组定义为全局数组2、线程A:pthread_mutex_lock(mutex)接收输入;写入数组;pthread_mutex_unlock(mutex)3、线程B:pthread_mutex_lock(mutex)显示数组内容;清空数组;pthread_mutex_unlock(mutex)以tcp为例,服务器经socket->bind->listen->accept得到新的已连接描述符,然后使用系统函数write(int fd, const void *buf, size_t count),它的第二个参数就是要传的数据指针,当传入数组名时,实际就是数组指针客户端通过socket ->connect->read(int fd, void *buf, size_t count),如果传输工程,客户端从fd中读出数据存入buf中,此时buf中存的就是服务器传过来的数组的值
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)