首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    网络协议之:socket协议详解之Socket和Stream Socket

    socket建立连接的基础是IP协议,IP协议被用来进行数据的封装和分组,然后才能够在网络上进行传输。这种依赖于IP协议的socket,又叫做network socket。...其中IP地址和端口定义了连接的对象,协议定义的是连接方式。 基于不同的协议,可以衍生出不同的类型的sockets。...比如依赖于TCP协议的叫做Stream sockets,依赖于UDP协议的叫做Datagram sockets,依赖于local files来进行数据传输的叫做Unix Domain Sockets....)是最常用也是极其高效的一种协议。...对于Stream Socket来说,它是有向性的,数据package需要从一个地址通过网络传递到另外一个地址,同时还需要接受到对方的处理返回结果,在这个过程中通常使用的就是TCP协议。

    2.1K21

    Socket 通信原理

    Socket就像一个电话插座,负责连通两端的电话,进行点对点通信,让电话可以进行通信,端口就像插座上的孔,端口不能同时被其他进程占用。...实际上,Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信。...Socket起源于UNIX,在Unix一切皆文件的思想下,进程间通信就被冠名为文件描述符(file desciptor),Socket是一种“打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个“...另外我们经常说到的Socket所在位置如下图: ? Socket通信过程 Socket保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是服务器与客户端之间的通信。...第一个元素conn是新的Socket对象,服务器必须通过它与客户通信;第二个元素addr是客户的IP地址及端口。

    7K91

    Socket通信原理

    原来Socket在这里。 Socket是什么呢? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。...这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。...使用TCP/IP协议的应用程序通常采用应用编程接口:UNIX BSD的套接字(socket)和UNIX System V的TLI(已经被淘汰),来实现网络进程之间的通信。...上面我们已经知道网络中的进程是通过socket来通信的,那什么是socket呢?...协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。

    90210

    socket rst_socket通信编程

    serverAdd.sin_port = htons(SERV_PORT); socklen_t clientAddrLen; int listenfd = socket..., (void *)&yes, sizeof(yes)); if (listenfd < 0) { printf("创建socket失败\...调用只负责把数据交给TCP发送缓冲区就可以成功返回了,所以不会出错,而server收到数据后应答一个RST段,表示服务器已经不能接收数据,连接重置,client收到RST段后无法立刻通知应用层,只把这个状态保存在TCP协议层...如果client再次调用write发数据给server,由于TCP协议层已经处于RST状态了,因此不会将数据发出,而是发一个SIGPIPE信号给应用层,SIGPIPE信号的缺省处理动作是终止程序。...printf("readLen:%ld\n",readLen); } } 客户端向服务端写5000字节以后先休眠一秒是为了将数据发送出去,确认TCP协议层已收到服务端响应的

    1.7K30

    网络协议之:socket协议详解之Datagram Socket

    简介 上一篇文章我们讲解了Socket的分类和最常用到的Stream Socket,Stream Socket一般是基于TCP协议的,所以我们经常在web服务中能够看到他们的身影。...当然TCP协议有个孪生兄弟叫做UDP,那么基于UDP来做传输协议的socket协议就叫做Datagram Socket,今天我们一起来详细了解一下Datagram Socket。...什么是Datagram Socket 和有连接的Stream Socket不同,Datagram Socket是无连接的。...Datagram Socket通常使用的就是UDP协议作为底层的数据传输协议。 对于UDP来说,因为UDP协议本身并不会保证数据的顺序和数据异常的处理,这些都需要在应用程序中自己实现。...默认情况下nc使用的是TCP协议,如果要使用udp则需要使用-u这个参数。

    1.4K30

    Android native进程间通信实例-socket本地通信篇之——基本通信功能

    导读:   网上看了很多篇有关socket本地通信的示例,很多都是调通服务端和客户端通信功能后就没有下文了,不太实用,真正开发中遇到的问题以及程序稳定性部分没有涉及,代码健壮性不够,本系列(socket...本地通信篇)会先直接调通linux本地socket通信,提供最基本的服务端和客户端代码,然后根据实际开发中遇到的问题和优化建议,再提供一版健壮版本的服务端代码。...再次明确一点,本篇博文不会搬移太多概念性的东西,比如三次握手协议,还有各个unix系统调用的功能。...1.服务端:   先捋清调用的一个时间顺序,UNIX中服务端的标准API设置如下: a. socket设置通信域等信息获取一个fd(文件描述符) b. bind设置相关参数,如获取的fd,sockaddr_un...2.客户端:   客户端代码更好写一点,捋清顺序: 1. socket设置通信域等信息获取一个fd(文件描述符) 2. connect根据socket设置的信息来连接服务端,信息中包括那个关键字符串MYSOCKET_PATH

    2.2K20

    网络协议之:socket协议详解之Unix domain Socket

    简介 之前的文章我们讲到了Socket中的Stream Socket和Datagram Socket,这两种Socket通常分别是基于tcp和udp协议来进行数据的传输。...那么今天我们会来讲解一个特殊的socket,这个socket不需要使用传统的IP地址和端口,而是使用文件系统来进行程序之间的数据交互,并且这样的socket只能使用在unix系统上。...这样的socket就是今天我们要讲解的Unix domain Socket。 什么是Unix domain Socket 什么是Unix domain Socket呢?...对于程序本身来说,只需要读取和写入共享的socket文件即可,也就是说不同的程序之间通过socket文件来进行数据交互。...和基于IP和端口的Socket一样,Unix domain Socket也可以分为Stream Socket和Datagram Socket。

    2.4K50
    领券