linux - 求教OSX下用Socket写邮箱服务器的正确体位?
黄舟
黄舟 2017-04-17 13:50:56
[Linux讨论组]

是这样的,有一个计网作业要求用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不行,跪了。

求大神解惑!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号