搜索
bottom↓
回复: 48

开源一个,本人写的TCP服务器,求穿裤衩。

  [复制链接]

出0入0汤圆

发表于 2013-8-2 17:03:26 | 显示全部楼层 |阅读模式
[ 本帖最后由 LingYi 于 2013-8-2 17:25 编辑 ]\n\n[code]#include "stdio.h"
#include "DSP28_Gpio.h"
#include "DSP28_SysCtrl.h"
#include "DSP28_PieCtrl.h"
#include "DSP28_PieVect.h"
#include "DSP28_InitPeripherals.h"
#include "DSP28_Timers.h"
#include "DSP28_Gpio.h"
#include "arp.h"

#include "common.h"
#include "display.h"
#include "irigb.h"
#include "dm9k_ex.h"
#include "net.h"
#include "check.h"

extern struct        HostStructType          Machine;
extern union         NetCardUnionType         uNetPack_Rx; //接收缓存
extern union         NetCardUnionType         uNetPack_Tx; //发送缓冲

void initNet_Inf()
{
        if(vResetDM9K_EX())
        {
                vInitD9K_EX();
        }
        else
        {
                while(1); //网络芯片错误,两灯都不亮
        }
}

void initNet(void)
{
        initNet_Inf(); //先初始化网口,以便输出调试信息
}

void RecvFromNet_Ex()
{
        UINT16         uiLen;
        if (uiCheckNewPacket_EX())                //接收数据包
        {       
                if (uNetPack_Rx.stEtherFrame.uiProtocol == 0x0806)//表示收到一个arp请求包
                {
                        if(uNetPack_Rx.stArpFrame.Operation == 0X0001)//表示收到的数据包是一个ARP请求报文
                        {
                                Arp_Answer();                //ARP应答
                        }
                        else if(uNetPack_Rx.stArpFrame.Operation == 0X0002)//表示收到的数据包是一个ARP回答报文
                        {
                                ;
                        }
                }
                else if(uNetPack_Rx.stEtherFrame.uiProtocol == 0x0800)//表示接收到一个IP数据包
                {                                                       
                         if((uNetPack_Rx.stIpFrame.VersionToService & 0xf000) == 0x4000)//IP V4版本
                         {
                                if( Check_RxIpHeadCrc() )        //IP首部CRC校验,返回值恒为1.校验结果保存在 CheckFlag
                                {
                       
                                        switch(uNetPack_Rx.stIpFrame.TtlToNextP & 0x00ff)
                                        {
                                                case 0x01://表示收到的IP数据报为ICMP查询报文(本程序仅对PING操作进行处理)

                                                        if((uNetPack_Rx.stIcmpFrame.TypeOpt >> 8) == 0x08)        //表示收到的ICMP报文是一个ping的请求包
                                                        {
                                                                Icmp_Ping_Answer();

                                                        }//对PING应答
                                                        else if((uNetPack_Rx.stIcmpFrame.TypeOpt >> 8) == 0x00)//表示收到的ICMP报文是一个ping的应答包
                                                        {
                                                               
                                                        }
                                                break;
                                                case 0x06://IPFrame的下层协议字段为6表示下层协议为TCP,表示收到TCP报文

                                                        Tcp_Process();
                                                break;
                                                case 0x11://IPFrame的下层协议字段为17表示下层协议UDP,表示收到UDP报文
                                               
                                                        Udp_Process();
                                                break;
                                                default:
                                                break;                                               
                                        }
                                }
                         }
                }       
        }   
}


























[/code]开源本人写的TCP服务器,硬件平台是2812 + DM9000,仅支持局域网,所有代码均为我个人慢慢敲出来的,耗时超不多3个月,使用工具TCP IP 调试助手 ,wireshark 网络抓包工具。参考资料是TCP IP 详解卷一 卷二,仅供学习,参考。
可以支持多个TCP 服务器,目前是3个,只需要修改一个数组的 tcpip.h 里面的   muchdevice  的宏即可以实现。 大家顶到100楼,就出贴源代码。(编辑说明:添了些说明。。。)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-8-2 17:06:39 | 显示全部楼层
帮顶……

出0入0汤圆

发表于 2013-8-2 17:12:08 | 显示全部楼层
100  楼。。。。

出0入0汤圆

发表于 2013-8-2 17:16:01 | 显示全部楼层
帮顶!接着定!!!!!

出0入0汤圆

 楼主| 发表于 2013-8-2 17:33:45 | 显示全部楼层
速度好慢哦。。。。

出0入0汤圆

发表于 2013-8-2 17:36:11 | 显示全部楼层
工程巨大呀。。。。学习中

出0入0汤圆

发表于 2013-8-2 17:54:05 | 显示全部楼层
帮顶         

出0入0汤圆

发表于 2013-8-2 17:58:16 | 显示全部楼层
这么niu

出0入0汤圆

发表于 2013-8-2 18:38:15 | 显示全部楼层
顶楼主。

出0入0汤圆

 楼主| 发表于 2013-8-2 19:40:15 | 显示全部楼层
niba 发表于 2013-8-2 17:36
工程巨大呀。。。。学习中

呵呵,确实有点大。不过还不是很完整,只是能工作。

出0入0汤圆

发表于 2013-8-2 19:48:59 | 显示全部楼层
支持一个,发出来

出0入0汤圆

发表于 2013-8-2 19:53:17 | 显示全部楼层
w d我顶                                                            

出0入0汤圆

发表于 2013-8-2 20:20:02 | 显示全部楼层
单身的楼主果然强大!

出0入0汤圆

 楼主| 发表于 2013-8-2 20:52:21 | 显示全部楼层
superAFE 发表于 2013-8-2 19:52
对LZ搞的这一块完全不懂,请见谅!

请问,这代码很有价值吗?要顶到100楼才肯帖出原代码? ...

其实,不用啦!明天晚上,约MM,成功了下个礼拜1,就共享。

出0入0汤圆

 楼主| 发表于 2013-8-2 20:52:44 | 显示全部楼层
NIC 发表于 2013-8-2 20:20
单身的楼主果然强大!

伤不起啊!

出0入0汤圆

发表于 2013-8-2 20:54:47 | 显示全部楼层
帮顶!

出0入0汤圆

发表于 2013-8-2 21:08:44 | 显示全部楼层
LingYi 发表于 2013-8-2 20:52
其实,不用啦!明天晚上,约MM,成功了下个礼拜1,就共享。

楼主,期待你的代码,更期待你的精彩故事!

出0入0汤圆

 楼主| 发表于 2013-8-2 21:10:43 | 显示全部楼层
NIC 发表于 2013-8-2 21:08
楼主,期待你的代码,更期待你的精彩故事!

太感谢了。。。。

出0入0汤圆

发表于 2013-8-3 06:31:48 来自手机 | 显示全部楼层
期待学习,100楼。

出50入0汤圆

发表于 2013-8-3 07:12:27 来自手机 | 显示全部楼层
顶起!100楼

出0入0汤圆

 楼主| 发表于 2013-8-3 11:32:35 | 显示全部楼层
才21楼,哎!大家一起加油哦

出0入0汤圆

发表于 2013-8-3 11:43:15 | 显示全部楼层
好庞大,,,玩 DSP 阿,

出0入93汤圆

发表于 2013-8-3 11:46:49 | 显示全部楼层
盖楼

出0入0汤圆

发表于 2013-8-3 12:40:16 | 显示全部楼层
帮顶,感觉很好。

出0入0汤圆

发表于 2013-8-12 21:17:48 | 显示全部楼层
这个还没到100楼,再帮楼主顶一下,大家一起顶阿

出10入23汤圆

发表于 2013-8-12 21:33:55 | 显示全部楼层
顶一下以表膜拜

出0入0汤圆

 楼主| 发表于 2013-8-12 22:13:34 | 显示全部楼层
过段时间就上传,虽然没有100层楼!

出0入0汤圆

发表于 2013-8-16 17:28:25 来自手机 | 显示全部楼层
mark…
顶一个…

出10入0汤圆

发表于 2013-8-17 10:20:34 | 显示全部楼层
盖楼

出0入0汤圆

 楼主| 发表于 2013-8-17 12:56:11 | 显示全部楼层
本帖最后由 LingYi 于 2013-8-17 14:57 编辑

哎!虽然没有100楼,但是我还是忍了,送给需要的人。声明:代码仅供学习、研究,请不要用于商业目的,可能代码存在些BUG,请使用的时候小心,如果出现问题,我个人不承担任何责任。万分感写你能够反馈BUG给我,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

发表于 2013-8-17 14:53:57 | 显示全部楼层
友情帮顶呀.
不过自己没做过TCP/IP方面的东西,不了解呀

出0入0汤圆

发表于 2013-8-19 10:43:40 | 显示全部楼层
楼主好人一个!!

出0入0汤圆

发表于 2013-8-19 10:51:22 | 显示全部楼层
怎么那么复杂,我的TCP服务器2行代码都不到

出0入0汤圆

 楼主| 发表于 2013-8-19 11:14:47 | 显示全部楼层
retime 发表于 2013-8-19 10:51
怎么那么复杂,我的TCP服务器2行代码都不到

你用的别人的吧!自己调用一下就是了?

出0入0汤圆

发表于 2013-8-20 08:06:28 | 显示全部楼层
那是一定要顶!

出0入0汤圆

发表于 2013-8-25 11:01:39 | 显示全部楼层
谢楼主分享

出0入0汤圆

 楼主| 发表于 2013-11-11 17:14:43 | 显示全部楼层

出0入0汤圆

发表于 2013-11-11 20:41:37 | 显示全部楼层
这种东西不开源最后都得压箱底

出0入0汤圆

 楼主| 发表于 2013-11-11 21:09:18 | 显示全部楼层
wswh2o 发表于 2013-11-11 20:41
这种东西不开源最后都得压箱底

哎!目前也没有什么用处啦

出0入17汤圆

发表于 2013-11-12 08:53:08 | 显示全部楼层
43楼了,搬砖盖楼

出0入0汤圆

发表于 2013-11-12 09:45:31 | 显示全部楼层
頂起

出0入0汤圆

发表于 2013-11-12 09:58:19 | 显示全部楼层
精神可嘉,值得学习

出0入0汤圆

发表于 2013-11-12 10:13:57 | 显示全部楼层
好,支持原创。帮你顶!

出0入0汤圆

发表于 2013-11-12 10:30:45 | 显示全部楼层
顶到100楼

出0入0汤圆

发表于 2013-11-12 10:38:04 | 显示全部楼层
superAFE 发表于 2013-8-2 19:52
对LZ搞的这一块完全不懂,请见谅!

请问,这代码很有价值吗?要顶到100楼才肯帖出原代码? ...

tcp服务器代码很有价值的,用到2812上就显得用处不大了

出0入0汤圆

发表于 2014-4-11 19:08:55 | 显示全部楼层
学习学习                                       

出0入0汤圆

发表于 2014-11-27 19:30:50 | 显示全部楼层
真个真心不懂,现在搞大功率的电机控制器。之前对这一块很感兴趣

出0入0汤圆

发表于 2014-11-27 19:40:03 | 显示全部楼层
看不懂,顶个

出0入0汤圆

发表于 2014-11-27 21:38:21 | 显示全部楼层
谢谢分享,mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 09:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表