随笔分类 -  网络编程(socket)

解决TCP网络传输“粘包”问题
摘要:解决TCP网络传输“粘包”问题作者:杨小平 王胜开原文出处:http://www.ciw.com.cn/ 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user data... 阅读全文

posted @ 2009-04-16 22:57 alon 阅读(14289) 评论(3) 推荐(0)

封包和拆包
摘要:作者:fengge8ylf 博客:http://blog.csdn.net/fengge8ylf 对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了. 一.为什么基于TCP的通讯程序需要进行封包... 阅读全文

posted @ 2009-04-16 22:56 alon 阅读(3242) 评论(1) 推荐(1)

socket中的TIME_WAIT状态
摘要:TCP要保证在所有可能的情况下使得所有的数据都能够被投递。当你关闭一个socket时,主动关闭一端的socket将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状态,这的确能够保证所有的数据都被传输。当一个socket关闭的时候,是通过两端互发信息的四次握手过程完成的,当一端调用close()时,就说明本端没有数据再要发送了。这好似看来在握手完成以后,socket就都应该处于关闭CL... 阅读全文

posted @ 2009-04-01 23:44 alon 阅读(7127) 评论(0) 推荐(1)

TCP套接字状态
摘要:TCP套接字解释 状态意义 CLOSED没有使用这个套接字 LISTEN套接字正在监听入境连接 SYN_SENT套接字正在试图主动建立连接 SYN_RECEIVED正在处于连接的初始同步状态 ESTABLISHED连接已建立 CLOSE_WAIT远程套接字已经关闭:正在等待关闭这个套接字 FIN_WAIT_1套接字已关闭,正在关闭连接 CLOSING套接字已关闭,远程套接字正在关闭... 阅读全文

posted @ 2009-04-01 23:38 alon 阅读(1180) 评论(0) 推荐(0)

【转载】Socket中如何设置连接超时
摘要:设置connect超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案。偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字进行管理"(《Windows网络编程技术》原话)。使用方法与解释请见《Windows网络编程技术》。 在使用此函数前,需先... 阅读全文

posted @ 2009-03-31 00:08 alon 阅读(3044) 评论(0) 推荐(0)

异步Socket通信
摘要:异步Socket通信 By John McTainsh From: http://www.codeproject.com/csharp/socketsincs.asp Translate by: Hillfree 本文介绍如何使用非阻塞方式的Socket通信,并且创建了一个聊天程序的例子来帮助说明。 介绍 本文介绍如何在多个应用程序之间创建和使用TCP/IP Socket来进行通信。这些应... 阅读全文

posted @ 2009-03-30 14:56 alon 阅读(746) 评论(0) 推荐(0)

socket疑难杂症
摘要:1.recv不等待是因为你使用的是非阻塞socket,换而你使用阻塞socket一样需要等待。 recv的recvfrom是可以替换使用的,只是recvfrom多了两个参数,可以用来接收对端的地址信息,这个对于udp这种无连接的,可以很方便地进行回复。 而换过来如果你在udp当中也使用recv,那么就不知道该回复给谁了,如果你不需要回复的话,也是可以使用的。另外就是对于tcp是已经知道对端的, ... 阅读全文

posted @ 2009-03-30 14:24 alon 阅读(409) 评论(0) 推荐(0)

Socket尴尬的CLOSE_WAIT状态以及应对策略(转)
摘要:摘要:本文阐述了为何socket连接锁定在CLOSE_WAIT状态,以及通过什么措施力求避免这种情况。 不久前,我的Socket Client程序遇到了一个非常尴尬的错误。它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那么程序会自动不断地重试建立连接。 有一天发现程序在不断尝试建立连接,但是总是失败。用netstat查看,这个程序竟然有上千个so... 阅读全文

posted @ 2009-03-29 14:01 alon 阅读(2021) 评论(0) 推荐(0)

导航