前言
前面我们已经实现了一个EchoServer,今天我们继续来写其他的东西。例如一个客户端,还有一个加法服务器。
运行效果
Client端:
思考
相比服务端Socket,客户端的Socket要简单的多。我们不难想到,一个客户端Socket需要哪些元素。
- Socket的相关属性:协议族等
- 服务器的地址,Host|Post,并连接
- 发送与接收
代码
- 42行,申请一个Socket。
- 46-51行,格式化服务器的地址与端口,inet_pton,这是将字符串的host格式化为协议地址。
- 54-57行,连接服务器。必须要对应的服务器已经在Listen的状态
-
59-67行,读数据,并用send发送给服务端,并从服务端recv对应的结果。
对于服务器来说,我们只要在先前的echo框架中进行修改即可。
需要注意的是,这种直接传一个结构体必须客户端与服务器的结构体完全一致。并且受到网络传输中大端小端的影响。所以,这种不经序列化的传输其实是不安全的。