小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

2014年9月4日

Qt入门(6)——Qt的界面布局

摘要: Qt提供四种布局: VBoxLayout:垂直布局HBoxLayout:水平布局GridLayout:二维布局。FormLayout: 窗体布局 水平布局管理器可以把它所管理的部件以水平的顺序依次排开,例如上图中中间的“Centigrade”和“Fahrenheit”两段文字,就是水平排列的,这个... 阅读全文

posted @ 2014-09-04 11:30 牛栏山1 阅读(309) 评论(0) 推荐(0) 编辑

Qt入门(5)——用Qt控件创建一个电话本界面

摘要: 具体实现步骤:一、首先用 Qt Designer 创建一个两张图的对话框,分别保存为listdialog.ui和editdialog.ui文件要注意其中各个空间对应的名称修改好二、新建一个Qt应用程序工程,取名为listdialog三、删除已有的listdialog.ui和ui_listdial... 阅读全文

posted @ 2014-09-04 10:53 牛栏山1 阅读(131) 评论(0) 推荐(0) 编辑

Qt入门(4)——Qt常见控件

摘要: Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求。我们将对这些控件和对话框作一个大概的介绍。1. QLabel定义QLabel* m_labelOrdered = newQLabel("0", this);对文字的左右对齐设置m_labelOrdered->setAlignment(... 阅读全文

posted @ 2014-09-04 10:48 牛栏山1 阅读(209) 评论(0) 推荐(0) 编辑

Qt入门(3)——信号和槽

摘要: 信号和槽用于对象间的通讯。信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。在图形用户界面编程中,我们经常希望一个窗口部件的一个变化被通知给另一个窗口部件。更一般地,我们希望任何一类的对象可以和其它对象进行通讯。例如,如果我们正在解析一个XML文件,当我们遇到一个新的标签... 阅读全文

posted @ 2014-09-04 10:44 牛栏山1 阅读(127) 评论(0) 推荐(0) 编辑

Qt入门(2)——使用Qt编写的Hello world

摘要: 对于一个qt初学者来说,一步一步来直到作出一个hello world是最基础的入门。从菜单:应用程序->编程中找到QtCreator 打开QtCreator 文件->新建文件或工程…… ,选择 其他项目->空的Qt项目,点击 chooes 按钮。 在下图名称处,输入工程名称 helloworl... 阅读全文

posted @ 2014-09-04 10:40 牛栏山1 阅读(200) 评论(0) 推荐(0) 编辑

Qt入门(1)——初识Qt

摘要: Qt是一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。Qt很容易扩展,并... 阅读全文

posted @ 2014-09-04 10:35 牛栏山1 阅读(133) 评论(0) 推荐(0) 编辑

Linux系统编程(37)—— socket编程之原始套接字

摘要: 原始套接字的特点 原始套接字(SOCK_RAW)可以用来自行组装IP数据包,然后将数据包发送到其他终端。也就是说原始套接字是基于IP数据包的编程(SOCK_PACKET是基于数据链路层的编程)。另外,必须在管理员权限下才能使用原始套接字。原始套接口提供了普通TCP和UDP socket不能提供的... 阅读全文

posted @ 2014-09-04 08:03 牛栏山1 阅读(184) 评论(0) 推荐(0) 编辑

Linux系统编程(37)—— socket编程之UDP服务器与客户端

摘要: 典型的UDP客户端/服务器通讯过程: 编写UDP Client程序的步骤1、初始化sockaddr_in结构的变量,并赋值。这里使用“8888”作为连接的服务程序的端口,从命令行参数读取IP地址,并且判断IP地址是否符合要求。2、使用socket()来建立一个UDPsocket,第二个参数为... 阅读全文

posted @ 2014-09-04 07:58 牛栏山1 阅读(166) 评论(0) 推荐(0) 编辑

Linux系统编程(36)—— socket编程之UDP详解

摘要: UDP 是User DatagramProtocol的简称,中文名是用户数据报协议。UDP协议不面向连接,也不保证传输的可靠性,例如: 1、发送端的UDP协议层只管把应用层传来的数据封装成段交给IP协议层就算完成任务了,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息... 阅读全文

posted @ 2014-09-04 07:57 牛栏山1 阅读(139) 评论(0) 推荐(0) 编辑

Linux系统编程(35)—— socket编程之TCP服务器的并发处理

摘要: 我们知道,服务器通常是要同时服务多个客户端的,如果我们运行上一篇实现的server和client之后,再开一个终端运行client试试,新的client就不能能得到服务了。因为服务器之支持一个连接。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端... 阅读全文

posted @ 2014-09-04 07:52 牛栏山1 阅读(135) 评论(0) 推荐(0) 编辑

Linux系统编程(33)—— socket编程之TCP程序的错误处理

摘要: 上一篇的例子不仅功能简单,而且简单到几乎没有什么错误处理,我们知道,系统调用不能保证每次都成功,必须进行出错处理,这样一方面可以保证程序逻辑正常,另一方面可以迅速得到故障信息。 为使错误处理的代码不影响主程序的可读性,我们把与socket相关的一些系统函数加上错误处理代码包装成新的函数,做成一个模... 阅读全文

posted @ 2014-09-04 07:49 牛栏山1 阅读(192) 评论(0) 推荐(0) 编辑

Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互

摘要: 前面几篇中实现的client每次运行只能从命令行读取一个字符串发给服务器,再从服务器收回来,现在我们把它改成交互式的,不断从终端接受用户输入并和server交互。 /* client.c */#include #include #include #include #include "wrap.h"... 阅读全文

posted @ 2014-09-04 07:49 牛栏山1 阅读(160) 评论(0) 推荐(0) 编辑

Linux系统编程(32)—— socket编程之TCP服务器与客户端

摘要: TCP协议的客户端/服务器程序的一般流程 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收... 阅读全文

posted @ 2014-09-04 07:47 牛栏山1 阅读(226) 评论(0) 推荐(0) 编辑

Linux系统编程(31)—— socket编程之TCP详解

摘要: TCP有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。32位序号、32位确认序号、窗口大小稍后详细解释。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短20字节。URG、ACK、PSH、... 阅读全文

posted @ 2014-09-04 07:39 牛栏山1 阅读(94) 评论(0) 推荐(0) 编辑

Linux系统编程(30)—— socket编程之TCP/IP协议

摘要: 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设... 阅读全文

posted @ 2014-09-04 07:38 牛栏山1 阅读(76) 评论(0) 推荐(0) 编辑

Linux系统编程(29)——线程间同步(续篇)

摘要: 线程间的同步还有这样一种情况:线程A需要等某个条件成立才能继续往下执行,现在这个条件不成立,线程A就阻塞等待,而线程B在执行过程中使这个条件成立了,就唤醒线程A继续执行。在pthread库中通过条件变量(Condition Variable)来阻塞等待一个条件,或者唤醒等待这个条件的线程。Cond... 阅读全文

posted @ 2014-09-04 01:02 牛栏山1 阅读(100) 评论(0) 推荐(0) 编辑

Linux系统编程(28)——线程间同步

摘要: 多个线程同时访问共享数据时可能会冲突,这跟前面讲信号时所说的可重入性是同样的问题。比如两个线程都要把某个全局变量增加1,这个操作在某平台需要三条指令完成: 从内存读变量值到寄存器寄存器的值加1将寄存器的值写回内存 假设两个线程在多处理器平台上同时执行这三条指令,则可能导致下图所示的结果,最后变量只... 阅读全文

posted @ 2014-09-04 00:53 牛栏山1 阅读(88) 评论(0) 推荐(0) 编辑

Linux系统编程(27)——线程控制

摘要: 进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,那么如何在一个进程的地址空间中执行多个线程呢。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同... 阅读全文

posted @ 2014-09-04 00:51 牛栏山1 阅读(107) 评论(0) 推荐(0) 编辑

Linux系统编程(26)——守护进程

摘要: Linux系统启动时会启动很多系统服务进程,比如inetd,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。 下面我们用ps ... 阅读全文

posted @ 2014-09-04 00:49 牛栏山1 阅读(93) 评论(0) 推荐(0) 编辑

Linux系统编程(25)——终端

摘要: 在Linux系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端。控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错... 阅读全文

posted @ 2014-09-04 00:46 牛栏山1 阅读(151) 评论(0) 推荐(0) 编辑

导航