
网络编程
文章平均质量分 81
wang_8910
孤木行舟眼观四海潮起潮落,宽厚仁和笑对人生无欲无求
展开
-
Socket编程基础知识
整理自《Linux网络编程》转载 2011-04-05 11:38:00 · 403 阅读 · 0 评论 -
解决TCP网络传输“粘包”问题
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的选择取决于应用的环境和需求。一般情况下,普通数据的网络传输采用高效率的udp,重要数据的网络传输采用高可靠性的T转载 2011-04-30 17:47:00 · 792 阅读 · 0 评论 -
使用 Socket 通信实现 FTP 客户端程序
FTP 概述文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命令。服务器收到命令后给予响应,并执行命令。FTP 协议与操作系统无关,任何操作系统上的程序只要符合 FTP 协议,就可以相互传输数据。本文主要基于 LINUX 平台,对 FTP 客户端的实现原理进行详尽的解释并阐述如何使用 C 语言编写一个简单的 FTP 客户端。回页首FTP 协议相比其他协议,转载 2011-06-02 19:08:00 · 4960 阅读 · 3 评论 -
tcp要点学习-建立连接
<br />准备:<br /> <br /> 在这里本文将遵循上一篇文章的风格,只提TCP协议中的要点,这样我觉得可以更容易地掌握TCP。或者根本谈不上掌握,对于这种纯理论的东西,即使你现在掌握了再多的细节,一段时间后也会淡忘。 <br /> <br /> 在以后各种细节中,因为我们会涉及到分析一些TCP中的数据报,因此一个协议包截获工具必不可少。在<TCP/IP详解>中一直使用tcpdump。这里因为我的系统是windows,所以只好使用windows平台的tcpdump,也就是Win转载 2011-04-06 21:33:00 · 563 阅读 · 0 评论 -
tcp要点学习-断开连接
<br />主要部分,四次握手:<br /> <br /> 断开连接其实从我的角度看不区分客户端和服务器端,任何一方都可以调用close(or closesocket)之类的函数开始主动终止一个连接。这里先暂时说正常情况。当调用close函数断开一个连接时,主动断开的一方发送FIN(finish报文给对方。有了之前的经验,我想你应该明白我说的FIN报文时什么东西。也就是一个设置了FIN标志位的报文段。FIN报文也可能附加用户数据,如果这一方还有数据要发送时,将数据附加到这个FIN报文时完全正常的。转载 2011-04-06 21:51:00 · 479 阅读 · 0 评论 -
一些linux网络API
<br /> 索引:<br />1.字节序函数<br />2.字节操作函数<br />3.地址转换函数<br />4.readn、writen和readline<br />5.测试描述符类型<br />6.socket函数<br />7.connect函数<br />8.bind函数<br />9.listen函数<br />10.accept函数<br />11.close函数<br />12.getsockname和getpeername<br />13.select函数<br />14.shutdow转载 2011-04-13 11:40:00 · 690 阅读 · 0 评论 -
setsocket用法大全
<br />1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:<br />BOOL bReuseaddr=TRUE;<br />setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));<br /><br />2. 如果要已经处于连接状态的soket在调用closeso转载 2011-04-09 15:46:00 · 847 阅读 · 0 评论 -
拼包函数及网络封包的异常处理(含代码)
<br /> 常见的网络服务器,基本上是7*24小时运转的,对于网游来说,至少要求服务器要能连续工作一周以上的时间并保证不出现服务器崩溃这样的灾难性事件。事实上,要求一个服务器在连续的满负荷运转下不出任何异常,要求它设计的近乎完美,这几乎是不太现实的。服务器本身可以出异常(但要尽可能少得出),但是,服务器本身应该被设计得足以健壮,“小病小灾”打不垮它,这就要求服务器在异常处理方面要下很多功夫。<br /> <br /> 服务器的异常处理包括的内容非常广泛,本文仅就在网络封包方面出现的异常作一讨论,希望能转载 2011-04-09 14:54:00 · 1083 阅读 · 0 评论 -
WebQQ 2.0实现分析(一)
Web前端开发听上去并不是一份牛逼的工作,但如果你的Web前端开发搞的很牛逼,那么你一定是做到了Steve Souders提到的那14条,个人认为如果前端开发有什么所谓的金科玉律,应该就是指他们了。Yahoo!后来还据此专门为Firebug开发了一个插件:YSlow。闭门造车不是个好主意,Web QQ 2.0的前端我认为做的很有创意,所以我准备停下来,认真分析一下其实现。在开始分析之前,先来了解一些基础知识。基础知识那些不得不说的工具“工欲善其事,必先利其器”,我所使用的分析工具简单而强大,上文已经提到过:转载 2011-04-07 10:25:00 · 2277 阅读 · 0 评论 -
socket编程原理
1 问题的引入 UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然后这个用户进程多次调用“读/写”以传输数据。当所有的传输操作完成后,用户进程关闭调用,通知操作系统已经完成了对某对象的使用。 TCP/IP协议被集成到UNIX内核转载 2011-04-08 13:32:00 · 779 阅读 · 0 评论 -
tcp要点学习-数据发送一
<br />1. 什么是delayed ack algorithm<br /><br /> <br /> delayed ack algorithm也就是<TCP/IP详解>中所谓的"经受时延的确认"(翻译得真饶舌 = =||)。在RFC1122中提到delayed ack的概念:<br /> <br /> <br /> <br /> 但是,如你所想,如果为每一个接收到的报文都发送一个ACK报文,那将会增加网络的负担。于是,为了解决这个问题,delayed ack被提出。也就是说,实现转载 2011-04-06 22:02:00 · 947 阅读 · 0 评论