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()、recvfrom\sendto(),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)  关闭套接字

转载于:https://www.cnblogs.com/cj2014/p/4475981.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值