服务端:
目标:建立socket,等待客户端主动连接,同时实现接收和发送消息。使用IO复用技术,使程序可以同时处理多客户端的连接,发送,接收,达到一定的并发性。
- 熟练使用
sockaddr
结构体,熟悉sockaddr_in
类型结构体内各变量的含义,类型和设置方法,熟悉sockaddr_in
类型结构体向sockaddr
类型转换的方式,sockaddr
结构体的使用方法。了解sockaddr_in
和sockaddr
结构体的关系。 - 使用
socket()
函数,建立socket连接。 - 使用
bind()
函数进行端口绑定。 - 使用
listen()
函数进行监听。 - 使用
accept()
函数接受客户端的连接,了解accept的阻塞和非阻塞的用法,能够配合返回值和errno处理正常和异常情况。 - 使用
select()
函数进行IO复用,提高网络IO的并发性,达到同时服务多个客户端的要求。最好能掌握select阻塞和非阻塞两种模式。 - 使用
read()
,write()
,recv()
,send()
等函数发送或接收网络数据,熟练掌握如何设置要发送数据和如何获取已收到的数据。了解各函数在阻塞和非阻塞两种模式下每个函数的返回值和处理方法(while). - 掌握上述各函数各参数的含义及设置方法,了解各函数返回值的含义及出错时
errno
每