实现一个简单的SMTP服务器
IP地址(IP Address)
端口(Port) SMTP 服务的端口号是 25
协议(Protocol)
数据传输方式:SOCK_STREAM 表示面向连接的数据传输方式;SOCK_DGRAM 表示无连接的数据传输方式
服务端:建立socket,声明自身的端口号和地址并绑定到socket,使用listen打开监听,然后不断用accept去查看是否有连接,如果有,捕获socket,并通过recv获取消息的内容,通信完成后调用closeSocket关闭这个对应accept到的socket,如果不再需要等待任何客户端连接,那么用closeSocket关闭掉自身的socket。
服务端编程
1、加载套接字库,创建套接字(WSAStartup()/socket());
- int socket(int af, int type, int protocol);其中,af 是 IP 地址类型,常用的有 AF_INET 和 AF_INET6。AF_INET 表示 IPv4 地址。type 为数据传输方式,常用的有 SOCK_STREAM 和 SOCK_DGRAM。protocol 表示传输协议,常用的有 IPPROTO_TCP 和 IPPTOTO_UDP,分别表示 TCP 传输协议和 UDP 传输协议。可以将 protocol 的值设为 0,系统会自动推演出应该使用什么协议。
- SOCKET sock