socket编程学习1----socket编程框架



错误的是B,因为socket通信可以基于TCP,也可以基于UDP的,故不一定要连结


1.    基于TCP(面向连接)的socket编程

(1.1)服务器端程序

 创建套接字socket

 将套接字绑定到一个本地地址和端口上bind

将套接字设为监听模式,准备接收客户请求listen

等待客户请求到了;当请求到来后,接收连接请求,返回一个新的对应于此次连接的套接字accept

 用返回的套接字和客户端进行通信rend/ recv

关闭套接字

(1.2)客户端程序

  创建套接字socket

向服务端发出连接请求connect

 和服务器端进行通信rend/recv

 关闭套接字


2、基于UDP的socket编程

(2.1)服务器端程序

  创建套接字socket

 将套接字绑定到一个本地地址和端口上bind

 等待接收数据recv/from

  关闭套接字

(2.1)客户端程序

  创建套接字socket

   向服务器发送数据sendto

   关闭套接字


3、常用结构体

(1)sockaddr_in结构体


sin_family指代协议族,在socket编程中只能是AF_INET
sin_port存储端口号使用网络字节顺序
sin_addr存储IP地址使用in_addr这个数据结构
sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。
s_addr按照网络字节顺序存储IP地址

sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向
sockadd的结构体,并代替它。也就是说,你可以使用sockaddr_in建立你所需要的信息,

(2)in_addr结构体


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值