随笔分类 -  SOCKET

手把手教你学习网络编程(1)
摘要:目录: 1) 什么是套接字?2) Internet 套接字的两种类型3) 网络理论4) 结构体5) 本机转换6) IP 地址和如何处理它们7) socket()函数8) bind()函数9) connect()函数10) listen()函数11) accept()函数12) send()和recv()函数13) sendto()和recvfrom()函数14) close()和shutdown()函数15) getpeername()函数16) gethostname()函数17) 域名服务(DNS)18) 客户-服务器背景知识19) 简单的服务器20) 简单的客户端21) 数据报套接字So 阅读全文
posted @ 2011-03-30 16:49 一顽石一 阅读(3055) 评论(0) 推荐(1) 编辑
IP组播技术综述二
摘要:五、组播应用与编程组播技术被认为是WWW技术推广之后出现的最激动人心的网络技术之一。1992年出现支持IP组播的Mbone(组播主干网)和Mbone桌面工具;1993-1996年IP Multicast成为业界关注的焦点,然而因发展条件不成熟使得IP组播只为业界所关注;进入1999年以来,IP组播具备了发展的三个关键条件:支持组播的路由协议;基于开放标准的可测试管理协议;因商业发展机遇而进入高速发展阶段。又一次掀起了组播实践的高潮,下面将有关组播应用作简单讨论:5.1 组播主干网(Multicast Backbone:Mbone)Mbone是一个由IETF开发的运行在Internet上的虚拟重 阅读全文
posted @ 2011-01-24 14:57 一顽石一 阅读(1511) 评论(0) 推荐(0) 编辑
IP组播技术综述一
摘要:引 言近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网络视频会议、网络音频/视频广播、AOD/VOD、股市行情发布、多媒体远程教育、CSCW协同计算、远程会诊。这就带来了带宽的急剧消耗和网络拥挤问题。为了缓解网络瓶颈,人们提出各种方案,归纳起来,主要包括以下四种:●增加互连带宽;●服务器的分散与集群,以改变网络流量结 被过滤广告构,减轻主干网的瓶颈;●应用QoS机制,把带宽分配给一部分应用;●采用IP Multicast(译为组播、多播或多路广播,下文不加区分)技术。比较而言,IP组播技术有其独特的优越性——在组播 阅读全文
posted @ 2011-01-24 14:54 一顽石一 阅读(4335) 评论(3) 推荐(1) 编辑
setsockopt设置socket状态
摘要:1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:BOOL bDontLinger = FALSE;setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLin 阅读全文
posted @ 2010-11-05 13:49 一顽石一 阅读(43768) 评论(2) 推荐(7) 编辑
UDP组播接收端解析
摘要:网络中的一台主机如果希望能够接收到来自网络中其它主机发往某一个组播组的数据报,那么这么主机必须先加入该组播组,然后就可以从组地址接收数据包。在广域网中,还涉及到路由器支持组播路由等,但本文希望以一个最为简单的例子解释清楚协议栈关于组播的一个最为简单明了的工作过程,甚至,我们不希望涉及到 IGMP包。 我们先从一个组播客户端的应用程序入手来解析组播的工作过程: #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <string.h> #include 阅读全文
posted @ 2010-11-05 13:45 一顽石一 阅读(37954) 评论(4) 推荐(2) 编辑
linux发送组播数据报
摘要:我们还是以发送UDP的组播数据为例。其实发送一个UDP的组播数据报跟发送一个单播UDP数据报的差别并不大。 首先是在myudp_sendmsg函数中,如果发送接口的源地址没有确定,并且目的地址是组播地址的话,则源地址使用 inet_sock->mc_addr。而发送接口的源地址首先是通过inet_sock->saddr来确定的,如果发现 inet_sock->saddr为零,才会采用inet_sock->mc_addr的值。 通过前面的文章,我们可以了解到bind系统调用的作用就是为一个本地套接口指定发送源地址和接收地址(即把一个本地套接口绑定在一个本地网络设备接口 上 阅读全文
posted @ 2010-11-05 13:25 一顽石一 阅读(8650) 评论(0) 推荐(0) 编辑