[转]Linux Socket编程(不限Linux)
- 博客分类:
- 技术杂绘
[转]Linux Socket编程(不限Linux)
2011年09月23日
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。――有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:
1、网络中进程之间如何通信?
2、Socket是什么?
3、socket的基本操作
3.1、socket()函数
3.2、bind()函数
3.3、listen()、connect()函数
3.4、accept()函数
3.5、read()、write()函数等
3.6、close()函数
4、socket中TCP的三次握手建立连接详解
5、socket中TCP的四次握手释放连接详解
6、一个例子(实践一下)
7、留下一个问题,欢迎大家回帖回答!!!1、网络中进程之间如何通信?本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:
消息传递(管道、FIFO、消息队列)
同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)
共享内存(匿名的和具名的)
远程过程调用(Solaris门和Sun RPC)
但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。
使用TCP/IP协议的应用程序通常采用应用编程接口:UNIX BSD的套接字(socket)和UNIX System V的TLI(已经被淘汰),来实现网络进程之间的通信。就目前而言,几乎所有的应用程序都是采用socket,而现在又是网络时代,网络中进程通信是无处不在,这就是我为什么说“一切皆socket”。
2、什么是Socket?上面我们已经知道网络中的进程是通过socket来通信的,那什么是socket呢?socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open
发表评论
-
"Segmentation fault(段错误)"探究
2012-01-20 08:37 1393"Segmentation fault(段错误)&q ... -
关于Linux的视频编程
2012-01-20 08:37 527关于Linux的视频编程 2011年03月09日 前言: ... -
Linux音频设备驱动-2【转】
2012-01-20 08:37 679Linux音频设备驱动-2【转】 2011年01月20日 ... -
VC++深入详解??chapter17??笔记
2012-01-20 08:37 523VC++深入详解??chapter17?? ... -
Java多线程初学者指南系列教程
2012-01-20 08:37 478Java多线程初学者指南系列教程 2010年10月11日 ... -
2011-9-20
2012-01-19 13:43 6072011-9-20 2011年09月20日 ... -
幼儿园教育笔记写什么?
2012-01-19 13:43 486幼儿园教育笔记写什么? ... -
实习心得体会2
2012-01-19 13:43 675实习心得体会2 2010年06月20日 首先学习谢谢 ... -
oracle错误一览表三
2012-01-17 03:33 539oracle错误一览表三 2011年02月15日 OR ... -
Windows Mobile系统名词解释
2012-01-17 03:33 600Windows Mobile系统名词解 ... -
嵌入式linux启动信息完全注释(2.2)(转载)
2012-01-17 03:33 546嵌入式linux启动信息完 ... -
高可用集群heartbeat模块可靠消息通信机制过程原理
2012-01-17 03:32 602高可用集群heartbeat模块可靠消息通信机制过程原理 2 ... -
2011年高考语文试题分类汇编―论述类(科技类)文本阅读1-
2012-01-16 02:08 4642011年高考语文试题分类汇编―论述类(科技类)文本阅读1- ... -
关于佛教出家人衣食住行的问答交流贴5(转贴)
2012-01-16 02:08 794关于佛教出家人衣食住行的问答交流贴5(转贴) 2011年01 ... -
读《汉族民间风俗》-徐杰舜主编-衣食住行风俗篇-服饰(1-2)
2012-01-16 02:08 591读《汉族民间风俗》-徐杰舜主编-衣食住行风俗篇-服饰(1-2) ... -
中国古代天文学
2012-01-16 02:08 576中国古代天文学 2009年0 ...
相关推荐
本篇文章主要介绍了Linux Socket编程,网络之间的通信全靠Socket,详细的介绍了Socket,有兴趣的同学可以了解一下。
/* * 使用规则: * 可以发送带附件的邮件,附件大小限制由发送方服务器而定,暂未测试具体为多少MB * 附件可以是多个 ...支持windows系统,linux系统。 上一版本的更新版。 详细情况件压缩包的readme
内容简介《Linux高性能服务器编程》是Linux服务器编程领域的经典著作,由资深Linux软件开发工程师撰写,从网络协议、服务器编程核心要素、原理机制、工具框架等多角度全面阐释了编写高性能Linux服务器应用的方法、...
socket网络编程-epoll-水平触发和边缘触发源码。 (1)I/O多路复用技术用于监控多个TCP连接上的数据收发,而epoll就是一种在Linux上使用的I/O多路复用并支持高并发的典型技术。传统的select、poll也是I/O多路复用...
第2 章Linux编程环境....................................................................................................14 2.1 Linux环境下的编辑器................................................. 14 ...
文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供...
普拉纳夫·谢诺(Pranav Shenoy) CS 3251 A-计算机网络CS 3251编程分配1. Java中的#UDP和TCP套接字。 跑步说明 有两个文件夹:UDP_Implementation和TCP_Implementation。 您可以在各自的文件夹中找到每种实现的Java...
FTP实验报告全文共2页,当前为第1页。... 实验总结 通过本次试验,我理解了整个FTP协议的细节和工作流程,对Linux系统下Socket编程的过程有了较多的了解,为以后网络编程的学习打下了良好的基础。 FTP实验报告
程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...
CWSS: C Web Services Server... 前端: 运行环境, 开发语言不限; 支持TCP, UDP和HTTP通讯能力即可; 可以根据项目需要开发自己的客户端库; e. 安全 具客户端帐号验证功能, 支持帐号直接配置和可编程管理二种验证方式;
CWSS: C Web Services Server... 前端: 运行环境, 开发语言不限; 支持TCP, UDP和HTTP通讯能力即可; 可以根据项目需要开发自己的客户端库; e. 安全 具客户端帐号验证功能, 支持帐号直接配置和可编程管理二种验证方式;
CWSS: C++ Web Services Server ...前端: 运行环境, 开发语言不限; 支持TCP, UDP和HTTP通讯能力即可; 可以根据项目需要开发自己的客户端库; e. 安全 具客户端帐号验证功能, 支持帐号直接配置和可编程管理二种验证方式;
前端: 运行环境, 开发语言不限; 支持TCP, UDP和HTTP通讯能力即可; 可以根据项目需要开发自己的客户端库; e. 安全 具客户端帐号验证功能, 支持帐号直接配置和可编程管理二种验证方式;
前端: 运行环境, 开发语言不限; 支持TCP, UDP和HTTP通讯能力即可; 可以根据项目需要开发自己的客户端库; e. 安全 具客户端帐号验证功能, 支持帐号直接配置和可编程管理二种验证方式;
前端: 运行环境, 开发语言不限; 支持TCP, UDP和HTTP通讯能力即可; 可以根据项目需要开发自己的客户端库; <br>e. 安全 具客户端帐号验证功能, 支持帐号直接配置和可编程管理二种验证方式;
由于listenfd是在fork之前就有的,所以所有子进程都可以访问到,不需用到“进程间文件描述符传递”问题; 4,子进程每accept到一个请求都告诉父进程,父进程把请求数加1;子进程没完成一个请求,父进程把请求数减1;...
[目录]Linux下的Java 24. [目录]以前介绍的资源 25. [目录]Java编程工具 30. [目录]更多下载相关 3. [目录]JavaScript 1. [目录]javascript 书籍 2. [目录]javascript 书籍(2) ...
这两个项目都开发出了 Linux 开发人员可以使用的包,尽管它们都还很不完善。这两个项目也都开始试图向其他操作系统上的 Java 应用程序提供对 USB 设备的访问,尽管它们都还没有开发出可以使用的包(参阅 参考资料 中...
13.1 通过Socket数据报传输消息 464 13.2 从Web抓取文档 466 13.3 过滤FTP站点列表 467 13.4 通过SNTP协议从服务器获取时间 468 13.5 发送HTML邮件 469 13.6 在MIME消息中绑入文件 471 13.7 拆解一个分段MIME...