套接字
是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端面点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。
多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
常用的TCP/IP协议的3种套接字类型如下所示。
流套接字(SOCK_STREAM):流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。
数据报套接字(SOCK_DGRAM):数据报套接字提供了一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP(User Datagram Protocol)协议进行数据的传输。由于数据包套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。
原始套接字(SOCK_RAW):原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送数据必须使用原始套接字。
主要的参数:
区分不同应用程序进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。Socket原意是 “插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系。此后,应用程序送给Socket的数据,由Socket交网络驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到得数据,网络应用程序就是这样通过Socket进行数据的发送与接收的。
分享到:
相关推荐
socket 套接字 Java 套接字 编程 socket 套接字 Java 套接字 编程 socket 套接字 Java 套接字 编程 socket 套接字 Java 套接字 编程
基于Java的Socket套接字编程 源代码
关于socket套接字的编程视频,内容详细,非常适合新手学习,还在等什么呢,快来观看吧。
JAVA网络编程资料(1)-Socket套接字—Java套接字编程.chm
Socket套接字—Java套接字编程
Socket 套接字 通信连接 详情请参见 http://blog.csdn.net/aduovip/article/details/6422648
C++基于QT与Socket套接字的邮件系统实现源码。基于QT与Socket套接字的邮件系统实现 主要实现前端界面,后端数据库,以及Csocket套接字实现通信。运行环境:Windows10 + QT 前端: Qt项目工程,呈现界面,负责处理与...
网络编程中,通常使用socket套接字编程,那么该如何使用呢?接下来我们做一个最基本的小程序实现其功能。博客地址:http://blog.csdn.net/bingdianlanxin,有问题欢迎留言!
socket套接字的编程原理(里面有代码举例),可以参照学习socket编程。是很好的入门教材
java中socket套接字定义与使用发起会议:系统具备视频会议功能,点对点聊天可以同时发起一个临时的视频会议,此会议是临时发起的,系统将不存储任何数据。 文件共享:用户可以将很大的文件采取文件共享...
异步socket套接字服务端实例案例代码,很好用的案例代码。
SOCKET套接字的小程序SOCKET套接字的小程序SOCKET套接字的小程序SOCKET套接字的小程序
尽做为想了解原始套接字或研究sniffer的朋友做示范操作 只要你具备相应的权限 只要在本机上运行本demo附带的exe 当你操作网络的时候就会把通过本机网卡的数据 给截获下来再gridlist中展示出来 目前只截获tcp udp ...
Socket套接字—Java套接字编程(上1)
MQL4本身所提供的接口所能做的事情是非常有限的,但是当你需要干其他事情的时候,你就需要用到一些工具,或者调用winapi,本文讲述了你如何通过调用winapi来操作socket实现网络访问
C++开发基于QT和Socket套接字的邮件系统实现源码.zip 95分以上高分必过项目,下载即用无需修改,代码完整确保可以直接运行。 C++开发基于QT和Socket套接字的邮件系统实现源码.zip 95分以上高分必过项目,下载即用...
网络socket套接字编程服务器客户端程序 精心写好的socket通信程序,实现服务器同时接受多个连接! 效果类似于ftp登录时的欢迎信息 使用正确的用户和密码登录后会看到服务器发送回来的欢迎信息! 这只是一个初稿,...
Socket套接字
一篇讲Java Socket套接字的小文章,不过里面讲的还不错。对于像学习Java Socket基础的人来说可以下载看看,我也顺便挣点分。 :)
使用套接字(Socket、ServerSocket)创建一个应用程序,实现网络数据的传输。 实现客户端和服务器端的通信。 含客户端服务器图形用户界面