在工程文件中pro文件中,添加QT += network
服务器
QTcpServer ---创建套接字, 绑定, 监听,接收连接
1.创建QTcpServer对象
QTcpServer *server = new QTcpServer();
2.监听
server->listen("地址",端口号);
QTcpSocktet ---发送,接收数据
3.当有客户端连接的时候,QTcpServer对象会发送newConnection信号,接收
connect(server, SIGNAL(newConnection()),this, SLOT(accept_client()));
4.创建QTcpSocket对象
在accept函数中通过server对象来创建QTcpSocket对象 nextPendingConnection()创建对象
客户端
QTcpSocket对象,连接服务器
QTcpSocktet *socket = new QTcpSocket()
connectToHost("服务地址",端口号);
当QTcpSocket对象有数据到达的时候会发生readyRead信号
connect(socket,SIGNAL(readyRead()),this, SLOT(read_data()))
在read_data函数中读取数据
socket->readAll();
http://wthrcdn.etouch.cn/weather_mini?city=广州
JSON ---对象--大括号表示一个对象, 对象中的成员是键值对数据(key-value)
数组--中括号括起来的一组数据(数组每一项数据是同类型)
value可以是对象, 可以是普通数据(字符串,整形数,数组)
{
"data": {
"wendu": "26",
"ganmao": "风较大,阴冷潮湿,较易发生感冒,体质较弱的朋友请注意适当防护。",
"forecast": [
{
"fengxiang": "南风",
"fengli": "3-4级",
"high": "高温 27℃",
"type": "暴雨",
"low": "低温 23℃",
"date": "15日星期一"
},
{
"fengxiang": "北风",
"fengli": "3-4级",
"high": "高温 29℃",
"type": "多云",
"low": "低温 23℃",
"date": "16日星期二"
},
{
"fengxiang": "无持续风向",
"fengli": "微风级",
"high": "高温 30℃",
"type": "多云",
"low": "低温 24℃",
"date": "17日星期三"
},
{
"fengxiang": "无持续风向",
"fengli": "微风级",
"high": "高温 29℃",
"type": "多云",
"low": "低温 25℃",
"date": "18日星期四"
},
{
"fengxiang": "无持续风向",
"fengli": "微风级",
"high": "高温 29℃",
"type": "多云",
"low": "低温 23℃",
"date": "19日星期五"
}
],
"yesterday": {
"fl": "微风",
"fx": "无持续风向",
"high": "高温 29℃",
"type": "多云",
"low": "低温 23℃",
"date": "14日星期日"
},
"city": "广州"
}
}