什么是套接字(Socket)转载:http://www.cnblogs.com/ruanbl/archive/2007/10/22/933430.html
应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要 通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)的接口,区分不同应用程序进程间的网络通信和连接。
生成套接字,主要有3个参数:通信的目的IP地址、使用的传输 层协议(TCP或UDP)和使用的端口号。Socket原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输 层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。
Host A上的程序A将一段信息写入Socket中,Socket的内容被Host A的网络管理软件访问,并将这段信息通过Host A的网络接口卡发送到Host B,Host B的网络接口卡接收到这段信息后,传送给Host B的网络管理软件,网络管理软件将这段信息保存在Host B的Socket中,然后程序B才能在Socket中阅读这段信息。
要通过互联网进行通信,至少需要一对套接字,一个运行于客户机端,称之为ClientSocket,另一个运行于服务器端,称之为serverSocket。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连 接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客 户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
分享到:
相关推荐
套接字socket编程文档
尽做为想了解原始套接字或研究sniffer的朋友做示范操作 只要你具备相应的权限 只要在本机上运行本demo附带的exe 当你操作网络的时候就会把通过本机网卡的数据 给截获下来再gridlist中展示出来 目前只截获tcp udp ...
linux套接字socket()编程手册,讲的比较详细,叙述了各个函数的参数以及功能……
网络通信 套接字 socket 代码 包括客户端和服务端 是socket学习的基础
VC套接字socket示例,在带接收函数recvfrom返回出错信息SOCKET_ERROR的时候可以自动自动启动重启机制。
多线程 群聊功能 网络编程 套接字 socket 实现群聊功能
使用套接字(Socket、ServerSocket)创建一个应用程序,实现网络数据的传输。 实现客户端和服务器端的通信。 含客户端服务器图形用户界面
JAVA网络编程资料(1)-Socket套接字—Java套接字编程.chm
C++利用网络套接字Socket实现协议HTTP下载文件的源代码
Linux系统编程(第七章 套接字socket).pdf
unix/linux套接字socket编程文档整理
TCP- Server- Client
介绍了主要的socket中的API,用于网络编程。
socket 套接字 Java 套接字 编程 socket 套接字 Java 套接字 编程 socket 套接字 Java 套接字 编程 socket 套接字 Java 套接字 编程
这是在linux平台下实现了聊天程序,网络套接字socket编程,还赋有实验报告,大家多多指教。
该文挡中详细总结了Java中怎样通过socket实现客户端和服务器端发送UDP数据包来通信
在Delphi中,套接字(Socket)编程用到的基本类是TServerSocket与TClientSocket。这两个类全部位于ScktComp单元中。其类型定义如下: type TServerSocket = class (ScktComp.TCustomServerSocket); TClientSocket ...
大多数程序员所接触到的套接字(Socket)为两类: (1)流式套接字(SOCK_STREAM):一种面向连接的Socket,针对于面向连接的TCP服务应用; (2)数据报式套接字(SOCK_DGRAM):一种无连接的Socket,对应于无连接的...
VS2013中C++控制台程序,单机可测试,包括网络通信客户端和服务器程序
用java编写的基于UDP和TCP两种协议编写的Socket(网络编程)案列