zoukankan      html  css  js  c++  java
  • linux c++ socket

    一.TCP Server:

    1.创建套接字socket():socket本质上就是一个int的数字,文件描述符,用于标识主机间端到端的通讯。两端的主机,通过对该socket进行读写,完成双方的通讯。

    2.绑定 bind():是将已经新建好的套接字(即:socket)与本地的地址进行一个联系(即:将socket绑定到一个本地地址和端口上)。

    3.将套接字设定为监听模式,准备接受客户端请求listen(): 监听是告诉客户端,服务器这边已经准备好了,等待为其服务啦。

    4.接收连接 accept():等待客户端请求到来,当请求到来后,接受连接请求,返回一个新的对应于此连接的套接字.

    5.读写 read()/write() : 关于读写的函数比较多,read()write(), recv()send()、recvfromsendto(),recvmsg()sendmsg()等。几组函数间比较相似,个别又有特点.

    6.返回,等待另一个客户端请求.
    7.关闭套接字.

    二.TCP Client:

    1.新建 socket()

    2.连接 connect()

    三.sockaddr_in数据结构

    使用数据结构sockaddr_in存储IP和端口等参数

                         sockaddr_in(在netinet/in.h中定义):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    struct sockaddr_in
     
    {
     
    short sin_family;/*Addressfamily一般来说AF_INET(地址族)PF_INET(协议族)*/
     
    unsigned short sin_port;/*Portnumber(必须要采用网络数据格式,普通数字可以用htons()函数转换成网络数据格式的数字)*/
     
    struct in_addr sin_addr;/*Internetaddress*/
     
    unsigned char sin_zero[8];/*Samesizeasstructsockaddr没有实际意义,只是为了跟SOCKADDR结构在内存中对齐*/
     
    };

    四.函数

    1. inet_pton(AF_INET,ip,&server_address.sin_addr)

        IP地址转换函数,可以在将IP地址在“点分十进制”和“二进制整数”之间转换

    2. htons():host to network short

        将主机的无符号短整形数转换成网络字节顺序

     
    面向无连接的套接字编程
    服务器:(接收端)
    1)       创建套接字(socket)
    2)       将套接字绑定到一个本地地址和端口上(bind)
    3)       用返回的套接字和客户端进行通信(recvfrom);
    4)       关闭套接字
    客户端:(发送端)
    1)  创建套接字(socket)
    2)  向服务器发送数据(sendto
    3)  关闭套接字
  • 相关阅读:
    sql声明变量,及if -else语句、while语句的用法
    视图、事务
    索引
    相关子查询
    递归实现treeView下的省市联动
    创建sqlhelp类以封装对数据库的操作及对可空类型的操作
    ADO.Net操作数据库
    sql的case语句
    vue父组件异步数据子组件接收遇到的坑
    第一次用angularJS做后台管理点滴
  • 原文地址:https://www.cnblogs.com/cj2014/p/4475981.html
Copyright © 2011-2022 走看看