linux下C++ socket网络编程( 四 )

6.返回 , 等待另一个客户请求 。

7.关闭套接字

TCP客户端通信常规步骤:

1.socket()创建TCP套接字 。

2.connect()建立到达服务器的连接 。

3.与客户端进行通信 , recv()/send()接受/发送信息 , write()/read() 子进程写入管道 , 父进程从管道中读取信息然后send给客户端

5. close() 关闭客户连接 。

五:相关技术介绍

1.socket 阻塞与非阻塞

阻塞与非阻塞关注的是程序在等待调用结果时(消息 , 返回值)的状态 。

阻塞调用是指在调用结果返回前 , 当前线程会被挂起 , 调用线程只有在得到调用结果之后才会返回 。

非阻塞调用是指在不能立刻得到结果之前 , 该调用不会阻塞当前线程 。

eg. 你打电话问书店老板有没有《网络编程》这本书 , 老板去书架上找 , 如果是阻塞式调用 , 你就会把自己一直挂起 , 守在电话边上 , 直到得到这本书有或者没有的答案 。 如果是非阻塞式调用 , 你可以干别的事情去 , 隔一段时间来看一下老板有没有告诉你结果 。

推荐阅读