这里实现一个最简单的客户端-服务端(C-S)的 TCP socket 通信。
- socket:建立套接字 socket
- bind:将套接字绑定到指定端口
- listen:设置套接字为被动接收请求模式,直到有请求连接才进入下一步,否则一直等待
- accept:接收连接请求,创建新的套接字
- 基于新的套接字进行数据收发
- 若交流结束,关闭套接字,程序结束
- socket:建立套接字 socket
- connect:向指定的套接字发起连接请求
- 连接成功则进行数据收发
- 若交流结束,关闭套接字,程序结束
- server.cpp: 服务端程序
- client.cpp: 客户端程序
首先运行服务器程序(server.cpp),其会等待客户端(client.cpp)发起请求。然后运行客户端程序,客户端连接到服务器后,会收到服务器返回的数据,然后各自结束。
# 编译两个源代码
$ make all
# 先运行服务端程序
$ ./server
# 新开一个终端,再运行服务端程序
$ ./client输出结果
$ ./server
Waiting for connecting
Here comes a new client
Server close
$ ./client
Connect to server
Message form server: This is server speaking!
Client close