求教OSX下用Socket写邮箱服务器的正确体位?

是这样的,有一个计网作业要求用c的socket编程完成一个邮箱服务器,很简单的功能。一开始为了避免不熟练磕磕碰碰我就开了虚拟机写windows下的版本,很顺利。
后来想实现Linux下的版本,就试了试,果不其然在SMTP协议上遇到了个磕绊,琢磨了很久搞不定,只好跪求各路大神解答。

这个程序和本地foxmail客户端进行通信,走环回地址。
建立tcp连接之后开始smtp命令的传输。接收到EHLO命令之后,开始进行身份验证,我的程序(服务端)发送一个身份验证规则(“250 smtp.qq.com|250 PIPELNING| blablabla.. “)。

然后就在这里出问题了:
在win下客户端立马完成了身份验证,并回复我邮件发送者的地址(如下图)。这过程中耗时几乎不计。

win下的代码
图片描述
win下运行效果
图片描述

而Linux下,程序在发送验证规则后挂起了很久,客户端一直没有回复(或者说我的程序没有接收到回复包更严谨一些)。
然后在接近一分钟之后才有动静,定睛一看,回复的内容却是 “\r\n . \r\n”(如下图)。什么鬼嘛

Linux下的代码
图片描述
Linux下运行效果
图片描述

雅蠛蝶 TAT 后来想抓一下Linux下和win下的包对比看看有什么不同,但是Mac版本的Wireshark能抓环回包而win不行,跪了。

求大神解惑!

以上是 求教OSX下用Socket写邮箱服务器的正确体位? 的全部内容, 来源链接: utcz.com/p/194463.html

回到顶部