首页
学习
活动
专区
圈层
工具
发布

【Linux】: Socket 编程

Socket 编程 6.1 socket 常见API Socket API 是一层网络编程接口,抽象了底层的网络协议,定义在 netinet/in.h 中。...实际上在网络上通信的时候套接字种类是比较多的,下面是常见的三种: unix 域间套接字编程--同一个机器内 原始套接字编程--网络工具 网络套接字编程--用户间的网络通信 设计者想将网络接口统一抽象化...通过这种设计,Socket API 可以通过统一的函数接口,处理不同类型的地址格式。...7.3 开始监听 Socket (TCP 服务器) 在服务器中,调用 listen() 函数使套接字进入监听状态,准备接受连接请求: int listen(int socket, int backlog...共勉 【*★,°*:.☆( ̄▽ ̄)/$:*.°★* 】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,后面我就要进行【Socket 套接字编程】的内容实战啦,请持续关注我

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    linux udp编程_linux中socket编程

    在前面的文件中,我们介绍了linux网络编程中与IP相关的知识和常用的函数总结,本文针对具体的UDP通信,来详细的介绍UDP通信的使用,包括UDP通信中的点对点通信,多播,广播等。...一、UDP通信中服务端和客户端的基本编程框架 与TCP相比较,UDP是面向无连接的通信方式,不需要connect、listen、accept等函数操作,不用维护TCP的连接、断开等状态。...3、关于服务端的bind操作,在存在组播,多播等多种通信方式的情况下,也还有一些需要注意的点,这个我们在下面的章节中描述 二、UDP通信的基本函数说明 在UDP中,完成一个基本的通信涉及到的几个函数如下...3.2、组播的使用 组播在基本UDP编程框架的基础上,使用setsockopt()函数和getsockopt()函数来实现,需要设置IP层的相关参数(第二个参数为 IPPROTO_IP),其原型如下:...设置组播的默认默认网络接口,会从给定的网络接口发送,另一个网络接口会忽略此数据 选项IP_ADD_MEMBERSHIP和IP_DROP_MEMBERSHIP:加入或者退出一个组播组其参数为一个结构体 使用组播的一个基本编程流程如下

    13.2K10

    【Linux】Socket编程—UDP

    在网络编程中,当一个进程需要绑定一个网络端口以进行通信时,可以使用INADDR_ANY 作为 IP 地址参数。这样做意味着该端口可以接受来自任何 IP 地址的连接请求,无论是本地主机还是远程主机。...:string, std::string> _dict; }; }   有了翻译的功能后,我们就可以将其嵌入服务器内部使用,所以我们在UdpServer类成员中添加一个回调方法,并在Start函数中使用...dictionary.Translate(key);}); svr_uptr->InitServer(); svr_uptr->Start(); return 0; } 客户端函数不需要改变可以直接使用...UserInterface() = default; virtual void SendTo(int sockfd, const std::string &message) = 0; // 纯虚函数...isrunning; // 服务器运行状态 add_t _adduser; del_t _deluser; router_t _router; }; #endif   在main函数中使用服务器对象时就需要绑定上述回调方法

    1.8K00

    【Linux】:Socket编程 TCP

    前言 在上篇文章里面已经讲了关于 Socket UDP 网络编程的内容,这篇文章我们主要是关于 Socket TCP 网络编程的内容 老样子,先写 Makefile 文件,如下: .PHONY:all...在写具体实现代码之前,我们先来了解一些相关知识 listen listen 函数是网络编程中的一个重要函数,通常用于将套接字(socket)设置为监听状态,以接受客户端的连接请求。...函数原型(C/C++) 在 POSIX 系统(如 Linux)中,listen 函数的原型如下: int listen(int sockfd, int backlog); 在 Windows 系统中,listen...accept accept 函数是网络编程中的一个核心函数,用于服务器端接受客户端的连接请求。...函数原型(C/C++) 在 POSIX 系统(如 Linux)中,accept 函数的原型如下: int accept(int sockfd, struct sockaddr *addr, socklen_t

    1.6K10

    linux下socket编程

    利用socket()函数打开,返回一个整型的socket描述符,然后建立连接,数据传输等等。...配置     面向连接的socket客户端通过调用connet函数在socket数据接口中保存本地和远端信息,无连接socket的客户端和服务端联通面向连接socket的服务端通过调用bind函数来配置本地信息...,返回0,出错返回-1并将errno设置为响应的错误号 建立连接     面向连接的客户程式使用connet函数来配置socket并和远端服务器建立一个TCP连接  int connect(int...sockfd, struct sockaddr *serv_addr, int addrlen)     sockfd是socket函数返回的socket描述符     serv_addr: 包含远端主机...,成功则返回0,失败返回-1     listen函数使socket处于被动的监听模式,并为该socket模式建立一个输入数据队列,将到达的服务请求保存在队列中 int listen(int sockfd

    5K70

    linux网络编程之socket(一):socket概述和字节序、地址转换函数

    一、什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口。 socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。...socket API是一层抽象的网络编程接口,适用于各种底层网络协议,如IPv4、IPv6,以及以后要讲的UNIX Domain Socket。...各种socket地址结构体的开头都是相同的,对于unix 的某些实现来说 前8位表示整个结构体的长度,后8位表示地址类型,而Linux就没有长度字段,前2个字节都是地址类型。...因此,socket API可以接受各种类型的 sockaddr结构体指针做参数,例如bind、accept、connect等函数,这些函数的参数应该设计成void *类型以便接受各种类型的指针,但是sock...原始套接字(SOCK_RAW) 参考: 《Linux C 编程一站式学习》 《TCP/IP详解 卷一》

    3K00

    Linux的SOCKET编程详解

    Linux的SOCKET编程详解 1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统。...Socket是什么 1、 socket套接字: socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –>...注意:其实socket也没有层的概念,它只是一个facade设计模式的应用,让编程变的更简单。是一个软件抽象层。在网络编程中,我们大量用的都是通过socket实现的。...具体如何实现,可以看看linux的内核 4.1、socket()函数 int socket(int protofamily, int type, int protocol);//返回sockfd...Socket编程实例 服务器端:一直监听本机的8000号端口,如果收到连接请求,将接收请求并接收客户端发来的消息,并向客户端返回消息。

    9.1K10

    【Linux】socket网络编程基础

    ,下面是C语言的函数 #include uint32_t htonl(uint32_t hostlong);//将一个32位无符号整数从主机字节序转换为网络字节序 uint16...编程基础 1、调用接口 (一)创建描述符 #include socket.h> int socket(int domain, int type, int protocol); 返回值:成功返回套接字描述符...函数创建、bind 函数绑定地址和端口,并且通过 listen 函数设置为监听状态的套接字描述符 addr:一个指向 struct sockaddr 类型的指针,它存储了发起连接请求的客户端的地址信息...addrlen:这是一个指向 socklen_t 类型的指针,用于传入 addr 所指向结构体的长度,并且在函数返回时,该指针指向的值会被更新为实际存储的客户端地址信息的长度,这里是输入输出型参数...(五)建立连接 #include socket.h> int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen

    50110

    【Linux网络】Socket编程预备

    在上篇文章中,我们了解到网络传输的基本流程,从局域网传输到跨网传输,也了解到在传输时需要封装和解包,接下来我们就要为下篇文章Socket编程作预备,我们需要通过理论加实战来输入了解,所以这篇文章会对Socket...编程前铺垫一些知识概念 1....如果主机是小端字节序,这些函数将参数做相应的大小端转换然后返回; 如果主机是大端字节序,这些函数不做转换,将参数原封不动地返回。 网络规定:所有发送到网络上的数据,都必须是大端的!...5. socket编程接口 5.1 socket 常见API // 创建 socket ⽂件描述符 (TCP/UDP, 客⼾端 + 服务器) int socket(int domain, int type..., const struct sockaddr *addr, socklen_t addrlen); 这里我们先了解一下这些接口,后面Socket编程时会详细介绍这些接口。

    11510

    Linux的SOCKET编程详解

    使用TCP/IP协议的应用程序通常采用应用编程接口:UNIX BSD的套接字(socket)和UNIX System V的TLI(已经被淘汰),来实现网络进程之间的通信。...Socket是什么 1、 socket套接字: socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –>...注意:其实socket也没有层的概念,它只是一个facade设计模式的应用,让编程变的更简单。是一个软件抽象层。在网络编程中,我们大量用的都是通过socket实现的。...3、文件描述符和文件指针的区别: 文件描述符:在linux系统中打开文件就会获得文件描述符,它是个很小的正整数。...具体如何实现,可以看看linux的内核 4.1、socket()函数 int socket(int protofamily, int type, int protocol);//返回sockfd

    3.7K10

    【Linux网络】Socket编程:TCP网络编程

    在前面的文章中,我们使用了UDP进行网络编程,这篇文章我们就来使用另一个TCP进行网络编程,我们知道UDP和TCP都是传输层协议,但是特点不同,前者无连接,不可靠传输,面向数据报,后者有连接,可靠传输...大体框架 1.1 补充 首先,在之前的UDP网络编程中,我们是直接使用的硬编码,例如退出码直接就设为1、2、3等,显然这并不是一个很好的选择,那么这里我们可以统一设计一个服务器的退出码,就像之前设计日志等级一样...,这意味着我们服务端在使用 InetAddr 类时只需要传入端口号,那么我们构造函数还需要重载一个供服务端使用 InetAddr(uint16_t port) :_ip("0"), _...如何设置: 可以设置为 SOMAXCONN(定义在 sys/socket.h 中),让系统使用一个默认的、相对较大的合理值(在Linux上,通常可以通过 /proc/sys/net/core/somaxconn...this指针,所以要使用静态成员函数,但静态成员函数不能访问非静态成员变量,所以我们使用了一个内部类 ThreadData ,并且传入this指针,方便我们使用类内成员变量,这些我们在学习线程时也介绍过

    12510

    linux网络编程之socket(十五):UNIX域套接字编程和socketpair 函数

    UNIX Domain Socket与网络socket编程最明显的不同在于地址格式不同,用结构体sockaddr_un表示,网络编程的socket地址是IP地址加端口号,而UNIX Domain Socket...    return 0; } server 使用fork 的形式来接受多个连接,server调用bind 会创建一个文件,如下所示: simba@ubuntu:~/Documents/code/linux_programming...四、socketpair 函数 功能:创建一个全双工的流管道 原型 int socketpair(int domain, int type, int protocol, int sv[2]); 参数...domain: 协议家族 type: 套接字类型 protocol: 协议类型 sv: 返回套接字对 返回值:成功返回0;失败返回-1 实际上socketpair 函数跟pipe 函数是类似的...参考: 《Linux C 编程一站式学习》 《TCP/IP详解 卷一》 《UNP》

    4.8K00
    领券