首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Pythonista

    基于TCP套接

    tcp服务端 1 ss = socket() #创建服务器套接 2 ss.bind() #把地址绑定到套接 3 ss.listen() #监听链接 4 inf_loop: 接受客户端链接 6 comm_loop: #通讯循环 7 cs.recv()/cs.send() #对话(接收与发送) 8 cs.close() #关闭客户端套接 9 ss.close() #关闭服务器套接(可选) tcp客户端 1 cs = socket() # 创建客户套接 2 cs.connect() # 尝试连接服务器 3 comm_loop: # 通讯循环 4 cs.send()/cs.recv() # 对话(发送/接收) 5 cs.close() # 关闭客户套接 socket 通信流程与打电话流程类似,我们就以打电话为例来实现一个low版的套接通信 #_*_coding:utf-8_*_ __author__ = 'Linhaifeng' import socket ip_port

    1.3K10发布于 2018-08-31
  • 来自专栏技术分享

    TCP&&UDP套接编程

    答: 应用进程使用传输层提供的服务才能够交换报文,实现应用协议,实现应用 报文的传输是通过下层的通信及其下层的服务来完成 ** TCP/IP:应用进程使用 Socket API 访问传输服务 Socket的两种传输层类型 **TCP: 可靠的、字节流的服务 ** **UDP: 不可靠(数据UDP数据报)服务 ** TCP套接编程 **套接:应用进程与端到端传输协议(TCP或UDP)之间 的门户 ** **TCP服务:从一个进程向另一个进程可靠地传输字节流 ** 过程 服务器首先运行,等待连接建立 ** 服务器进程必须先处于运行状态 ** 创建欢迎socket 和本 地端口捆绑 在欢迎socket上阻塞式等待接收 用户的连接 ** 客户端主动和服务器建立连接:(Accept接收其他人与他建立的连接)** 如果没有那就会阻塞 ** 创建客户端本地套接(隐式捆 读取字符 服务器将字符转换成大写 ,然后返回给客户端 客户端从socket中读取一 行字符,然后打印出来 ** **实际上,这里描述了C-S之间交互的动作次序 140 这里需要重新回顾 UDP套接编程

    49810编辑于 2024-05-31
  • 来自专栏用户8907256的专栏

    C中实现TCP套接

    如何在C中实现TCP套接 最近一直出差,大家不好意思。文章更新的有点慢,希望大家包涵!!谢谢!!!今天讲工业现在用到最多的通讯协议。 TCP套接用于服务器和客户端进程之间的通信。 return 0; } 解释 包括头文件sys/socket.h和arpa/inet.h: #include <sys/socket.h> #include <arpa/inet.h> 创建一个返回套接描述符的套接 , 1); 通过接受传入的连接来存储客户端的地址和套接描述符: struct sockaddr client_addr; int client_size = sizeof(client_addr); 关闭服务器和客户端套接以结束通信: close(client_sock); close(socket_desc); 客户端 #include <stdio.h> #include <string.h> 如果成功创建了套接,将显示消息“正在侦听传入的连接…”。 2、按下+按钮以打开另一个终端标签并执行客户端的命令。 3、在“客户端”选项卡中输入一条消息,该消息将发送到服务器。

    1.4K20发布于 2021-08-13
  • 来自专栏程序员

    TCP套接编程——Python语言描述

    当连接一旦建立,那么客户端就可以直接通过该套接向服务器发送数据。而无需向UDP连接中那样需要指定目的地址。下面我们来看客户端代码。 一旦服务器捕捉到一个请求,那么将会接受该TCP连接的建立。server_socket套接只是用来监听请求的,不是真正的数据传输套接。 在accept函数捕捉到TCP连接请求以后,建立一个新的用于数据传输的套接data_socket。客户端和服务器的数据传输就是在该套接上进行。 借用《计算机网络——自顶向下方法》这本书里面的一幅图来形象的描述TCP连接建立的过程。 ? 三次握手的过程是于欢迎套接之间进行的,真正的数据传输是在新的套接上进行的。 实质上,套接就是管道的一个升级版本。只不过管道只能在本机进程之间进行数据传输,套接能在网络上的主机中进行通信。

    1.1K20发布于 2019-05-25
  • 来自专栏python-爬虫

    基于TCP协议的套接编程

    protocol 一般不填,默认值为 0 socket.socket(socket_family, socket_type, protocal=0) # 获取tcp/ip套接 tcpSock = socket.socket 方法 用途 s.bind() 绑定(主机,端口号)到套接 注:(127.0.0.1)表示本地ip s.listen() 开始TCP监听 s.accept() 被动接受TCP客户的连接,(阻塞式)等待连接的到来 2.客户端套接函数 方法 用途 s.connect() 主动初始化TCP服务器连接 s.connect_ex() connect()函数的扩展版本,出错时返回出错码,而不是抛出异常 3.公共用途的函数 s.getsockname() 当前套接的地址 s.getsockopt() 返回指定套接的参数 s.setsockopt() 设置指定套接的参数 s.close() 关闭套接 4.面向锁套接 方法 用途 s.setblocking() 设置套接的阻塞与非阻塞模式 s.settimeout() 设置阻塞套接操作的超时时间 s.gettimeout() 得到阻塞套接操作的超时时间 5.

    1.4K10发布于 2019-07-24
  • 来自专栏java初学

    unix网络编程——TCP套接编程

      TCP客户端和服务端所需的基本套接。服务器先启动,之后的某个时刻客户端启动并试图连接到服务器。之后客户端向服务器发送请求,服务器处理请求,并给客户端一个响应。 该过程一直持续下去,直到客户端关闭,给服务端发送EOF(文件结束),服务器也关闭连接的服务器端,然后结束运行或者等待新的客户发起连接请求 图1 TCP网络套接示意图 在图中涉及到不同的函数,接下来进行详细的介绍 如果是TCP套接,调用connect函数会激发TCP三次握手,而且仅在连接建立成功或失败时才会返回。 ---- bind函数   bind函数将一个本地协议地址赋予一个套接,对于网际协议,协议地址是32位的Ipv4地址或128位的IPv6地址与16位的TCP或UDP端口号的组合。   servaddr:套接地址结构的指针   addrlen:套接地址结构的大小   对于TCP,调用bind函数可以指定一个端口号和一个IP地址,也可以不指定。  

    1.6K10发布于 2018-09-19
  • 来自专栏萌新的日常

    【网络通信】socket编程——TCP套接

    TCP依旧使用代码来熟悉对应的套接,很多接口都是在udp中使用过的 所以就不会单独把他们拿出来作为标题了,只会把第一次出现的接口作为标题 @TOC 通过TCP套接 ,来把数据交付给对方的应用层,完成双方进程的通信 ,用于区分 进行网络通信还是 本地通信 若想为网络通信,则使用 AF_INET 若想为本地通信,则使用 AF_UNIX 第二个参数 type, 套接对应的服务类型 SOCK_STREAM 流式套接 UDP协议 套接的返回值:若成功则返回文件描述符,若失败则返回 -1 说明进行网络通信,流式套接,同时系统认为是TCP协议 创建err.hpp 用于存储错误信息的枚举 如果创建失败,则终止程序 2 绑定 bind 输入 man 2 bind ,查看绑定 给一个套接绑定一个名字 第一个参数 sockfd 为 套接 第二个参数 addr 为 通用结构体类型 第三个参数 addrlen 为 第二个参数的实际长度大小 网络通信,并为流式套接,默认为0,因为流式所以为TCP协议 若创建套接失败,则终止程序 2.发起链接 输入 man accept 客户端 通过套接sockfd,向特定的服务器发起链接请求 sockfd

    84940编辑于 2023-11-17
  • 来自专栏Java学习从基础到就业

    【Java网络编程】从套接(Socket)概念到UDP与TCP套接编程

    网络编程 1.socket套接 Socket 套接,是由系统提供用于网络通信的技术,是基于 TCP/IP 协议的网络通信的基本操作单元。基于Socket 套接的网络程序开发就是网络编程。 Socket套接可以基于传输层协议划分为三类: 流套接:使用传输层TCP协议,基于字节流进行传输,对于字节流来说,可以简单的理解为,传输数据是基于IO流,流式数据的特征就是在IO流没有关闭的情况下, 注意目的IP和目的端口号,标识了一次数据传输时要发送数据的终点主机和进程 Socket编程我们是使用流套接和数据报套接,基于传输层的TCP或UDP协议,但应用层协议,也需要考虑。 ) 3.tcp套接编程 ServerSocket API ServerSocket 是创建TCP服务端Socket的API. () 返回此套接的输入流 OutputStream getOutputStream() 返回此套接的输出流 TCP中的长短连接 TCP 发送数据时,需要先建立连接,什么时候关闭连接就决定是短连接还是长连接

    91610编辑于 2024-10-27
  • 来自专栏JMCui

    套接 socket 和 tcp 连接过程

    需要明确的是,每个 tcp 连接的两端都会关联一个套接和该套接指向的文件描述符。 二、tcp 连接过程 ? 监听之后,套接就从 CLOSE 状态转变为 LISTEN 状态,于是这个套接就可以对外提供 TCP 连接的窗口了。 用来设置连接已完成队列(accept queue)的最大长度; 4. connect() 函数 connect() 函数是用于向某个已监听的套接发起连接请求,也就是发起 TCP 的三次握手过程。 于是,TCP 连接的两端的套接都已经成了五元组的完整格式。 经过 accept() 函数后,tcp 连接的套接从 sockfd 变成了 connfd ,也就是说,经过 accept() 之后,这个连接和 sockfd 套接已经没有任何关系了。 ?

    3.5K10发布于 2020-12-21
  • 来自专栏Python小屋

    Python实现TCP协议套接多路复用

    ================= Python标准库selector和selectors支持套接的多路复用,使得可以在同一个线程中监听多个套接的IO请求。

    1.3K40发布于 2020-05-08
  • 来自专栏程序员

    套接

    套接最早是UC Berkeley为BSD操作系统设计的。现在POSIX标准化了套接。在Linux和Unix下的套接是一致的。 套接是通信端点的一种抽象。在Linux下socket是文件的一种。也就是说可以使用read和write函数去处理套接。 需要注意的是SOCK_RAW它提供的并非是传输层的套接接口,它所提供的接口位于TCP/IP协议栈的网络层。也就是说,这时候传输层被越过了,需要应用程序开发者自行设计自己的协议头。 但是现在TCP/IP成为了网络的实际标准。 socket的第二个参数就是表1给出的套接类型,但是在实现的时候,可以自有增加其他类型的支持。 protocol通常是0,表示给给定的域和套接类型选择默认的协议。这在同一域和套接类型的时候是有用的,可以指定选择某一个特定的协议。 socket函数返回一个套接描述符,本质上是一个文件描述符。

    1.9K00发布于 2019-05-25
  • 来自专栏登神长阶

    【Linux网络】Linux网络编程套接,UDP与TCP

    在众多网络编程技术中,套接(Socket)编程无疑是核心与基石,它不仅支撑着Web服务、即时通讯、在线游戏等日常应用,还是实现分布式系统、云计算服务的关键技术之一。 在套接编程的世界里,UDP(用户数据报协议)与TCP(传输控制协议)如同双生子,各自以其独特的优势占据着不同的应用场景。 本文旨在深入探讨Linux环境下,如何通过套接编程技术,驾驭UDP与TCP这两种强大的网络传输协议,从零开始构建基础的网络通信能力。 socket, const struct sockaddr *address, socklen_t address_len); Udp中常见API: // 函数用于在面向数据报的套接(如UDP套接 通过这段旅程,我们一同见证了从基础概念到实践应用的华丽蜕变,从最初的套接创建、绑定、监听,到数据的发送与接收,每一步都充满了挑战与收获。

    1.2K10编辑于 2024-11-18
  • 来自专栏深入理解Android

    Socket(套接

    ** 1.对套接编程的理解,它的协议是如何的? socket通常称为“套接”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通过套接向网络发出请求或应答网络请求。 根据连接启动的方式以及本地套接要连接的目标,套接之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。 (1)服务器监听:是服务器端套接并不定位具体的客户端套接,而是处于等待连接的状态,实时监控网络状态。 (2)客户端请求:客户端的套接必须首先描述它要连接的服务器的套接,指出服务器端套接的地址和端口号,然后就向服务器端套接提出连接请求。 (3)连接确认:是指当服务器端套接监听到或者说接收到客户端套接的连接请求,它就响应客户端套接的请求,建立一个新的线程,把服务器端套接的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。

    2K10编辑于 2022-06-22
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    套接选项

    选项影响套接操作,如 封包路由,OOB数据传输,获取和设置套接选项分别是 getsockopt  setsockopt 用法如下: int getsockopt(SOCKET s,int level optval,int* optlen); int setsockopt(SOCKET s,int level,int optname,char* optval,int* optlen); 每个协议层套接的选项有不同的级别 : 应用层:SOL_SOCKET 传输层:IPPROTO_TCP IPPROTO_UDP 网络层:IPPROTO_IP 阻塞模式下,可以调用recvfrom在指定的端口接收网络封包 如果封包还不到,设置套接选项即可设置等待时间

    1.9K60发布于 2018-01-17
  • 来自专栏转载gongluck的CSDN博客

    UNPv13:#第4章#基于TCP套接编程

    const struct sockaddr* myaddr, socklen_t addrlen); 如果指定端口号为0,那么由内核选择一个临时端口;如果指定的IP地址为通配地址,内核将等到套接已连接 (TCP)或已在套接上发出数据报(UDP)是才选择一个本地IP地址。 listen函数 #include <sys/socket.h> int listen(int sockfd, int backlog); listen函数把一个未连接套接转换成一个被动套接 ,指示内核应接受向该套接的连接请求。 当一个客户SYN到达时,如果队列已满,TCP就忽略分节,不发送RST。这种情况是暂时的,客户TCP将重发SYN。如果服务器TCP响应RST,客户connect调用就返回一个错误。

    1.3K80发布于 2018-03-09
  • 来自专栏Python3——套接字

    Python套接

    套接:通信的端点 套接 有两种类型的套接:基于文件的和面向网络的。 IPC:进程间通信。 面向连接的套接与无连接的套接 面向连接的套接 面向连接的套接:在进行通信之前必须先建立一个连接。这种类型的通信也称为虚拟电路或流套接。 实现这种连接类型的主要协议是传输控制协议(TCP)。 为了创建TCP套接,必须使用SOCK_STREAM作为套接类型。AF_INET的网络版本通常使用因特网协议(IP)来搜寻网络中的主机,所以整个系统通常结合这两种协议(TCP/IP)来进行。 Python中的网络编程 Socket详细介绍 TCP服务器端工作流程 创建服务器端套接A 将套接A与地址B使用bind函数绑定 使用listen函数使服务器开始监听 使用accept函数返回新的套接对象 C及其地址 使用C的recv函数接受发送到服务器端的数据 使用C的send函数发送数据 每次接收到一个新的连接就会在服务器端创建一个新的套接来负责与该连接进行信息的交换 TCP客户端工作流程 创建套接

    2.4K20发布于 2019-03-14
  • 来自专栏技术一点点成长

    Java套接

    前言:   本文补充一下Java关于套接方面的内容,因为其应用相对比较简单,所以下面介绍两个程序实例。 ------------------------- 1.Socket对接过程 (注:这是之前在网上见过一张图片,大致过程还是比较清晰的) 分析: Socket对接之后的数据传送类似于文件的读写; 流套接采用 TCP传输数据流,一旦数据发送失败将重传,所以具有安全无损的特点。

    1.5K20编辑于 2022-08-09
  • 来自专栏机器和智能

    socket套接

    什么是socket套接 套接就像一个插座,插座需要一个插头来连接双方才能通电,而socket通信也需要两个端,一个服务端一个客户端。 套接创建成功后,也会得到一个文件描述符fd,通过fd来操作一块内核缓冲区。在服务器端创建一个套接,就会得到一个内核缓冲区和文件描述符,这个缓冲区分为读写两部分。 网络套接函数 (1) 创建套接 int socket(int domain, int type, int protocol); - 创建一个套接 - domin - AF_INET:这是大多数用来产生 当protocol为0时,会自动选择type类型对应的默认协议; - 返回值为文件描述符(套接),即创建好的socket套接的文件描述符。 - sockfd:套接; - addr:传入参数,指定服务器端地址信息,服务器端的IP和端口; - addrlen:第二个参数addr的长度; 7. TCP通信流程图

    1.4K10编辑于 2024-11-15
  • 来自专栏刘晓杰

    16(套接)

    1 套接描述符 套接描述符在Unix系统中是用文件描述符实现的。 参数protocol通常为0,表示选择默认协议 套接通信是双向的。 : 0 if OK, 1 on error how=SHUT_RD,那么无法从套接读取数据; how=SHUT_WR,那么无法使用套接发送数据; how=SHUT_RDWR,那么无法读取和发送数据 这意味着如果复制一个套接(比如dup),套接直到关闭了最后一个引用时才被释放,而shutdown允许使一个套接处于不活动状态,无论引用他的文件描述符是多少。 其次,有时只关闭套接双向传输中的一个方向会很方便。比如,如果想让进程确定数据发送何时结束,可以关闭该套接的写端,而读端仍然可以接收数据。

    1.6K20发布于 2019-02-21
  • 来自专栏从小白开始修炼

    【网络】TCP套接创建服务客户端与守护进程

    Tcp服务端 TcpServer.hpp TCP服务端创建流程如下: 创建socket文件套接对象,面向字节流SOCK_STREAM bind绑定自己的网络信息,通常端口是固定的,IP地址默认为 创建socket文件套接对象 _listensock = socket(AF_INET, SOCK_STREAM, 0); if (_listensock 客户端 TcpClient.hpp Tcp客户端创建流程如下: 创建套接(socket)对象,面向字节流SOCK_STREAM 客户端需要bind,但是客户端的绑定不需要我们自己写,操作系统会去绑定 套接创建的整体流程 上述TCP服务端TcpServer.hpp整体代码如下 #pragma once #include <iostream> #include <string> #include <cstring 创建socket文件套接对象 _listensock = socket(AF_INET, SOCK_STREAM, 0); if (_listensock

    66730编辑于 2023-10-15
领券