在前面讲完了服务器从建立套接字、绑定、监听和提取,以及客户端的连接,我们已经可以动手实现一个简单的镜像服务器。
错误处理
在那之前,我们先封装一个错误处理函数 errif
可以定义一个uitl.cpp放里面,需要的地方引用即可
util.h
#ifndef UTIL_H
#define UTIL_H
void errif(bool, const char*);
#endif
util.cpp
#include "util.h"
#include <stdio.h>
#include <stdlib.h>
void errif(bool condition, const char *errmsg){
if(condition){
perror(errmsg);
exit(EXIT_FAILURE);
}
}
服务端代码
server.cpp
#include<stdio.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<string.h>
#include<unistd.h>
#include "util.h"
int main(){
int socketfd = socket(AF_INET,SOCK_STREAM,0);
errif(sockfd == -1 "socket crete error");
struct sockaddr_in serv_addr;
bze