第15章 套接字

创建:

#include <sys/types.h>

#include <sys/socket.h>

int socket( int domain, int types, int protocol);

domain:

  AF_UNIX, AF_LOCAL      // address family  地址是文件名

  AF_INET   //IPV4

  AF_INET6  //IPV6

types:

  1. stream:  SOCK_STREAM    //流

  2. datagram: SOCK_DGRAM  //数据报

socket返回的描述符,用read和write调用

close系统调用结束socket连接

不同的domain 有不同的地址格式:

  AF_UNIX : 定义在sys/un.h 中

    struck sockaddr_un {

      sa_family_t  sun_family;

      char     sun_path[ ];

    };

  AF_INET : 定义在netinet/in.h中

  struct sockaddr_in {

    short int     sin_family;

    unsigned short int  sin_port;

    struct in_addr    sin_addr;

  };      其中:

      sruct in_addr {

        unsigned long int  s_addr;

      };

命名:   要使用创建好的套接字,需要命名.

#include <sys/socket.h>

int bind( int socket, const struct sockaddr *address, size_t address_len);  //succes return 0.

建立套接字队列:  保存未处理的请求

  #include <sys/socket.h>

  int listen( int socket, int backlog);   //backlog位保存的最大个数    成功 返0

接收连接:

  服务器程序建立并命名了套接字后 可通过accept系统调用来等待客户建立对该套接字的连接

  #include <sys/socket.h>

  int accept( int socket, strucct sockaddr *sddress, size_t *address_len);

    

时间: 2024-10-12 21:37:22

第15章 套接字的相关文章

第7章套接字选项

一般通过以下函数设置套接字选项:getsockopt和setsockopt函数;fcntl函数;ioctl函数 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, i

第三章-套接字编程

套接字结构一般从内核到进程.从进程到内核,其中从内核到进程是值-结果参数的例子 地址转换函数推荐使用inet_ntop,inet_pton适用于ipv4跟ipv6 套接字地址结构 struct sockaddr_in{ uint8_t sin_len;//长度 posix规范不需要这个 sa_family_t sin_family; //协议族,无符号短整数.一般表示AF_INET in_port_t  sin_port;//端口 struct in_addr sin_addr;//32位ip地

Unix网络编程学习笔记之第7章 套接字选项

一.获取/设置套接字选项的方法 一个套接字描述符相关联的套接字选项很多.获取/设置套接字选项的方法: 1.  getsockopt和setsockopt函数 2. fcntl函数 3. ioctl函数 二. getsockopt和setsockopt函数 int getsockopt(int sockfd, int level, int optname, void* optval, socklen_t* optlen); int setsockopt(int sockfd, int level,

UNIX网络编程第3章套接字编程简介3.2套接字地址结构3.3值结果参数3.4字节排序函数

1: #include <iostream> 2: #include "../lib/unpsunyj.h" 3: 4: int main(int argc, char **argv) 5: { 6: union { 7: short s; 8: char c[sizeof(short)]; 9: } un; 10:   11: un.s = 0x0103; 12: std::cout << "un.s =: " << un.s

Java套接字Socket

这篇博客是本人学习<Java网络程序设计>书中第4章套接字的学习总结.初学者网友学习这篇Java套接字文章,如果难于理解文章前面理论部分,可以先运行后面的程序,边看运行后面的程序边理解前面的原理,这对初学者是最好的方法.所有源代码都在文章后面我的github链接代码中. --惠州学院 13网络工程 吴成兵 20160607 目录 1 目录 1 一 流套接字概述 二 服务器套接字ServerSocket 21 ServerSocket的工程过程 22 ServerSocket构造方法 23 Se

apue学习笔记(第十六章 网络IPC:套接字)

本章将考察不同计算机(通过网络连接)上的进程相互通信的机制:网络进程间通信. 套接字描述符 正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字. 许多处理文件描述符函数(如read和write)可以用于处理套接字描述符.调用socket函数创建一个套接字 #include <sys/socket.h> int socket(int domain,int type,int protocol); 参数domain(域)确定通信的特性,包括地址格式.下图总结了POSIX.1指定的各个域,每

UNP学习笔记(第四章 基本TCP套接字编程)

本章讲解编写一个完整的TCP客户/服务器程序所需要的基本套接字函数. socket函数 #include <sys/socket.h> int socket(int family,int type,int protocol); //返回:成功则为非负描述符,若出错则为-1 family参数指明协议族,它是如下某个常值 type参数指明套接字类型,它是如下某个常值 protocol参数为下面某个协议类型常值,或者设为0,以选择所给定family和type组合的系统默认值 下图展示了基本TCP客户

UNP学习笔记(第三章:套接字编程简介)

本章开始讲解套接字API. 套接字地址结构 IPv4套接字地址结构 它以sockaddr_in命名,下面给出它的POSIX定义 struct in_addr { in_addr_t s_addr; }; stuct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; /* AF_INET */ in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8]; }; POSIX规范

Python学习-15.Python的中的套接字socket

Python应用最广泛的要数web方面了.因此,socket显得十分重要. 要使用socket,必须引入socket模块,因此在Python脚本开头先写入 1 import socket 学过socket的都知道,就是客户端和服务端的通信. 因此新建client.py和server.py文件. 先编写server.py文件: 1 import socket 2 3 # 创建 TCP 协议的套接字. 4 server = socket.socket(socket.AF_INET,socket.SO