① QT中用TCP发送文件时界面卡死,只有等文件发送完成才恢复正常,怎么解决

是不是你发送的文件比较大,此时loading比较大,导致了QT 出于停止响应的状态~

你可以打开设备工作管理员,看看你在传输文件的时候,CPU和RAM的loading是不是比较大~

② qt中直接使用TCPSOCKRT传输数据的时候,有没有一个相当于setsockopt的函数,直接修改ACK DALAY

void QAbstractSocket::setSocketOption ( QAbstractSocket::SocketOption option, const QVariant & value )
Sets the given option to the value described by value.
可以来看自看这个函数

③ Qt怎么实现文件上传功能

如果你是HTTP服务器,并且支持客户端的post方法上传,那你用post就可以了
否则用QTcpSocket自己做上传的客户端

④ qt 使用tcp发送数据

很简单的,看看Qt的帮助文档就理解了:

1、在*.pro文件中加回入network模块 QT+= network

2、在你的*.h里面添加 QTcpSocket

3、连接服务器地址和答端口号tcpSocket->connectToHost("192.168.1.1", 8000);

4、监听连接成功的信号 SGINAL-->connected()

5、给socket填写你想发送的数据,封装成QByteArray

//发送字符串
QByteArraydataSend="Haveatry!";
tcpSocket->write(dataSend);
//发送16进制数据
dataSend.clear();
dataSend[0]=0xa5;
dataSend[1]=0x5a;
dataSend[2]=0xa5;
dataSend[3]=0x5a;
//写入socket即可
tcpSocket->write(dataSend);

⑤ qt的tcp通信 服务器和客户端读写数据的问题

首先回答第一个问题,读和写可以有多种实现方式,用write和read只是其中一种,前面一个函数中的 clientConnection->write(block)是调用了QTcpSocket 类中的write方法来实现,如果你想不用此方法调用类中的read和write方法,就是你问的第二个问题,in和out的作用,in和out在这里将对socket中的报文收发变为数据流的形式来操作,QDataStream in(tcpSocket)比如这一句是将tcpSocket这个连接的实例对象作为一个文件描述符传递给QDataStream,然后 in >> blockSize这句话实现的就是相当于read的操作,就是将数据流读出来。这个 out << (quint16)(block.size() - sizeof(quint16))是写入。实际上对诸如串口收发,读写文件,socket通信等等,用C语言来写,抽象出来都是对文件描述符进行操作,都可以用write和read来做,所以,实际上,第一种方法和第二种方法是一样的,就看你选择什么样的方法了,第三个问题可参考out << (quint16)(block.size() - sizeof(quint16))这样的方法在收到数据以后把数据发出去。
请给分。。。

⑥ linux Qt下,tcp文件传输

这个用不来着QT。QT是C++写的自,C++兼容C。我这倒是有C语言写的。你要的话把邮箱给我。我发给你。发给你的东西有很多其他的代码。有聊天程序,有传文件的程序(模拟scp)、还有shell。
你说 用getlp函数 得到的ip不对,可能是你选的连接类型是本地连接。用socket的时候你要用 AF_INET 而不是 AF_UNIX。