网络(Network)
文章平均质量分 70
iamlate
这个作者很懒,什么都没留下…
展开
-
The Network Module in Qt 4-----Qt 4的网络模块(节选翻译)
The network module in Qt 4 provides some new features, such as support for internationalized domain names, better IPv6 support, and better p原创 2011-07-21 21:03:35 · 1773 阅读 · 0 评论 -
Linux 基于TCP/IP的文件传输系统
一、 设计目的通过Linux C编程,设计一个基于TCP/IP的文件传输系统,实现网络文件的收发。二、 设计环境VMware WorkStation 6.0.2+Fedora 10三、 设计方案转载 2011-10-08 05:54:47 · 2536 阅读 · 0 评论 -
recv/recvfrom/recvmsg系统调用
功能描述: 从套接字上接收一个消息。对于recvfrom 和 recvmsg,可同时应用于面向连接的和无连接的套接字。recv一般只用在面向连接的套接字,几乎等同于recvfrom,只要将recvfrom的第五个参数设置NULL。如果消息太大,无法完整存放在所提供的缓冲区转载 2011-10-08 06:20:03 · 556 阅读 · 0 评论 -
Linux网络编程. 服务器模型(软件工程节选)
学习过《软件工程》吧.软件工程可是每一个程序员"必修"的课程啊.如果你没有学习过, 建议你去看一看. 在这一章里面,我们一起来从软件工程的角度学习网络编程的思想.在我们写程序之前, 我们都应该从软件工程的角度规划好我们的软件,这样我们开发软件的效率才会高. 在网络程序里面,一般的转载 2011-10-19 01:11:11 · 672 阅读 · 0 评论 -
深入UNIX编程:一个简单聊天室的两种实现 (fcntl 和 select)
在互联网相当普及的今天,在互联网上聊天对很多“网虫”来说已经是家常便饭了。聊天室程序可以说是网上最简单的多点通信程序。聊天室的实现方法有很多,但都是利用所谓的“多用户空间”来对信息进行交换,具有典型的多路I/O的架构。一个简单的聊天室, 从程序员的观点来看就是在多个I/O端点转载 2011-10-19 01:13:04 · 593 阅读 · 0 评论 -
linux socket的select函数例子
使用select函数可以以非阻塞的方式和多个socket通信。程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序。1. 程序使用了一个数组fd_A,通信开始后把需要通信的多个socket描述符都放入此数转载 2011-10-19 01:32:52 · 5224 阅读 · 2 评论 -
使用select+非阻塞socket写的网络数据转发程序
在与远程服务器connect的时候,程序要等待连接完全建立完毕才返回,这里会让程序产生延迟。而在非阻塞中不会等待,直接去处理其它连接。“程序有问题,暂时未仔细看”#include #include #include #include #include #include #include #define closesocket cl转载 2011-10-29 01:49:54 · 1880 阅读 · 1 评论 -
linux下非阻塞的tcp研究
这是根据自己的笔记整理的,如有错误,欢迎指出来. tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据. 在阻塞模式下,send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送并得到确认后再返回.但由于发送缓存的存在,表现为:如果发送缓存大小比请求发送的大小要大,那么send函数立即返回,同时转载 2011-10-29 00:46:49 · 825 阅读 · 0 评论 -
linux非阻塞的socket EGGAIN的错误处理
在Linux中使用非阻塞的socket的情形下。(一)发送时 当客户通过Socket提供的send函数发送大的数据包时,就可能返回一个EGGAIN的错误。该错误产生的原因是由于send 函数中的size变量大小超过了tcp_sendspace的值。tcp_sendspace定义了应用在调用send之前能够在kernel中缓存的数据量。当应用程序在socket中设置了O_NDELA转载 2011-10-29 00:55:00 · 1467 阅读 · 1 评论 -
两个应该注意的小问题
1,套接口程序中使用的int,short,long等数字数据需要网络字节序的转化。2,原创 2011-11-08 15:31:31 · 523 阅读 · 0 评论 -
反思:关于select的一些经历
今天交了,该了几改的程序。是一个服务器转发聊天程序,第一次是在别人例子的基础上直接做得。后来,发现我用得时阻塞,当时考虑的问题太多。包括一个包分了好几次才收到,或者一次收到了,相互独立且完整的几个包。最重要的一个问题是,在使用费阻塞的io以后,因为对select的FD_ISSET理解错误(我认为是不是变化,但事实上是不是在集合内),我对select返回可读套接字后能不能一定读到数据产生了疑问。原创 2011-11-08 12:33:38 · 776 阅读 · 0 评论 -
带有xml转发的select非阻塞,修正了一个错误
修改部分在transfer.c第288行,修改如下ptr = conns[m].totalBuffer;conns[m].edSize = 0;//-----------------------同一文件,这样修改貌似可以减少提示出现的不是utf-8字符串的问题。79 content[target->XmlLength+1] = '/0';//about utf-8p原创 2011-11-09 00:34:00 · 1107 阅读 · 0 评论 -
linux send recv函数详解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用转载 2011-10-08 06:07:10 · 727 阅读 · 0 评论 -
Linux获取本机IP
#include #include #include #include #include #include #include #define ERRORIP "cannot find host ip"char *ip_search(void){转载 2011-09-29 15:24:39 · 1770 阅读 · 0 评论 -
Socket 编程基础概念
原本想在学习笔记1中列出一些简单的网络概念之类知识,但是又发现那种感觉了,以前学会使用turbo c 2.01编写hello world的时候,我就写了一些。。。现在我绝对不会再写了,我觉得笔记就是应该能突出要学习的知识点,这里并不是暗示我对计算机网络这门课程有多么精通。只是说,原创 2011-07-19 21:05:29 · 1467 阅读 · 0 评论 -
QFtp学习
现在通过C++ GUI Programming with Qt4书中QFtp的例子, 来回顾一下以前学习的知识。先帖出代码,然后回顾下书中的分析,添加一些自己不熟悉的知识点。 ftpget.pro 文件TEMPLATE = appQT = co原创 2011-07-19 23:50:36 · 3726 阅读 · 1 评论 -
Qt网络模块简介
为了便于理解,我们将Qt网络模块提供的类分为三个集合。第一个集合中,为基本的网络类,包括: QSocket, QServerSocket, QDns, 等。使用这些类实现 TCP/IP 套接字编程将更为便捷。第二个集合中,QNetworkProtocol和QNetworkOper原创 2011-07-19 21:48:07 · 1416 阅读 · 0 评论 -
QUdpSocket相关 (1)
随手试了下C++ GUI Programming with Qt4 UdpSocket中的例子。void testDialog::sendDatagram(){ ss1 = lineEdit1->text(); ss2 = lineEdi原创 2011-08-04 02:52:52 · 4622 阅读 · 0 评论 -
Qt 寻找局域网机器的IP地址
我做了一个类似飞鸽传书的小程序,当时以为Qt的类库中肯定有个类,可以查询出所有局域网的IP,结果找不到这个类。总不能让别人传文件的时候,还要输入IP吧。我就在一个Qt群里问了好多次,后来有个管理员看不下去了,随口给我说了:“ARP或者Ping,自己写”。开始,我以为这个管理员逗我原创 2011-07-18 04:15:13 · 4998 阅读 · 3 评论 -
多线程网络编程的一个错误----在论坛和群里多次见到别人遇到
错误提示如下:QObject: Cannot create children for a parent that is in a different thread. 由于想要在线程中保留一个socket,以便维持双边通信,因此定义如下:SocketThread转载 2011-08-06 08:45:17 · 1775 阅读 · 0 评论 -
一段来源于《精通Qt编程》的文件传输功能的代码
服务器端和客户端都是继承于QDialog,写个住程序让他们显示即可。代码来源于《精通Qt编程》,我觉得就是把这本书背下来,离精通还很远。代码是3个月前我自己照着pdf的书敲出来的。自己添加了一些界面代码,和一些投文件。核心代码未作修改。有些地方我现在还没搞的很清楚,再回顾原创 2011-08-06 09:13:04 · 4725 阅读 · 2 评论 -
QQ通信原理及QQ是怎么穿透内网进行通信的?(关于P2P)
QQ是一个基于TCP/UDP协议的通讯软件 发送消息的时候是UDP打洞,登陆的时候使用HTTP~因为登陆服务器其实就是一个HTTP服 务器,只不过不是常用的那些,转载 2011-08-12 19:58:22 · 10111 阅读 · 2 评论 -
五种获取本地网络信息的方法(QHostInfo和QNetworkInterface)
1.使用QHostInfo获取主机名和IP地址。(1)获取主机名。 1. QString localHostName = QHostInfo::localHostName(); 2. qDebug() (2)获取本机的IP地址。原创 2011-08-23 21:52:30 · 13037 阅读 · 0 评论 -
Qdemo中broadcast的例子
Qdemo中broadcast的例子发送端://! [0] udpSocket = new QUdpSocket(this);//! [0]connect(timer, SIGNAL(timeout()), this, SLOT(broad原创 2011-08-23 22:37:33 · 1123 阅读 · 0 评论 -
WinSock I/O系列1:多路复用I/O支持多Client的实现及效率讨论
1. 引言多路复用I/O模型(select)是UNIX/LINUX用得的最多的一种I/O模型,在Windows下也可做为一种同步I/O使用。本文给出该I/O模型处理多Client的简单(在主线程中)实现。2. 关于selectselect I/O模型是一种异步I/O模型,在单线程中Linux/WinNT默认支持64个客户端套接字。这种转载 2011-10-19 01:18:24 · 957 阅读 · 0 评论