![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 19:51 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 求助 关于dos网络编程(winsail) |
| 可打印版本 4,572 / 34 |
| 第1楼 tianmian | 发表于 2008-01-13 11:32 |
| 初级用户 发帖 41 积分 100 | |
|
求助 关于dos网络编程(winsail) 用的是bc3.1+winsail2.0;按照packet driver里面的说明文档把网卡驱动和相关的系统配置文件弄好了,在建立的工程中的config.sys也将网卡驱动开关加进去了。
但在调用socket()的时候总是返回1,查看得出错代号为2; 请问怎么解决? |
|
| 第2楼 tianmian | 发表于 2008-01-13 11:36 |
| 初级用户 发帖 41 积分 100 | |
|
我自己感觉很有可能是网卡驱动之类的没起来
|
|
| 第3楼 firstsail | 发表于 2008-01-14 14:22 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
要注册TCP/IP协议栈 如果要使用WinSail的TCP/IP协议栈,要有以下三个条件同时成立
(1)安装Packet网卡驱动程序,如果成功,会出现网卡的物理地址(即NIC地址)xx:xx:xx:xx:xx (2)WinSail的配置文件Config.Sys中的NetCard段的NetCard键值配置为TRUE NetCard = TRUE (3)在main函数中,调用InitSystem函数之前,须向WinSail V2.0注册TCP/IP协议栈 ::AfxRegisterNetcardEntry(::GlobalInitSocket, ::GlobalCloseSocket, ::EthernetEntry); --------------------------------------------------------------------------------------------------- 您可以用WinSail的演示程序Sail3000查看网络是否已经可靠运行,首先将Sail3000工程文件中的Config.Sys文件“NetCard”段的“NetCard”键值置为“TRUE”,运行Sail2000.exe文件,在桌面上有一图标“网络设置”,如果NIC地址不是“00:00:00:00:00”,那么您的Packet网卡驱动程序就已经加载成功了。 您程序的IP地址是由“Netcard”段的“My_IP”键值指定,在演示程序中,我将它配置成了169.254.82.133了。 [ Last edited by firstsail on 2008-1-14 at 02:52 PM ] |
|
| 第4楼 tianmian | 发表于 2008-01-15 19:37 |
| 初级用户 发帖 41 积分 100 | |
|
网卡驱动已经起来了,我进行了一些socket编程,用的是udp通信协议,创建socket-绑定-发送数据;然而发送数据的时候老返回错误?
请问firstsail能给一段用winsail编程的例子程序吗 |
|
| 第5楼 firstsail | 发表于 2008-01-15 20:51 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
(1)下载“http://www.firstsail.com.cn/software.html”的WinSail V2.0
(2)解压后,运行“WinToDos”目录中的“Udp_Demo.exe”,作为UDP协议的上位机,正确填写准备与之通讯的下位机IP地址及其端口号,程序中默认下位机的IP地址是“169.254.82.133”和端口号是“6200”,最后“点击启动UDP协议按钮”启动UDP (3)解压后将Sail3000目录拷到纯DOS环境中。 (4)进入纯DOS环境运行WinSail V2.0的演示程序Sail2000.exe,进入桌面上的图标“QQ聊天窒”,别忘了将Sail3000中的Config.Sys文件的“Netcard”段的“Netcard”键值配置为“True”. 您可以发送一些文字,看一看上位机Udp_Demo是否收到内容。 (5)下位机的UDP协议应用例子,可看Sail3000目录中的Remote_N.Cpp文件和qq.cpp两个文件 Remote_N.cpp文件实现“文件传输”、“下位机界面上传”、“鼠标键盘按钮接收”等功能。 qq.cpp文件实现“QQ聊天窒”的聊天程序 在调试WinSail的“TCP/IP”协议时,请在纯DOS环境下进行! [ Last edited by firstsail on 2008-1-15 at 08:58 PM ] |
|
| 第6楼 firstsail | 发表于 2008-01-15 21:15 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
请重新下载WinSail 不好意思,请重新到"http://www.firstsail.com.cn/software.html"下载更新后的“Sail3000”目录和“UdpDemo.Exe”程序
|
|
| 第7楼 tianmian | 发表于 2008-01-15 21:17 |
| 初级用户 发帖 41 积分 100 | |
|
非常感谢你的指导,我现在去试试看
|
|
| 第8楼 firstsail | 发表于 2008-01-15 21:31 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
如果还有故障,可能:
(1)您的“路由器”或“集线器”过滤了您的IP包。建议直接采用“机联机”形式调试,注意“机联机”的网络线与连接“集线器”或“路由器”的网络线是不同的。 (2)或者将下位机的IP地址改为与上位机一样的“网络”地址。 [ Last edited by firstsail on 2008-1-15 at 09:33 PM ] |
|
| 第9楼 tianmian | 发表于 2008-01-15 23:00 |
| 初级用户 发帖 41 积分 100 | |
|
按照你说的做了提示“程序没有加载winsail tcp/udp协议栈”
|
|
| 第10楼 tianmian | 发表于 2008-01-15 23:16 |
| 初级用户 发帖 41 积分 100 | |
|
这个应该是在winsail系统起来之前已经注册好的,程序为什么这样提示呢
我qq是70344130,不如加我为好友吧,我向你多多学习 |
|
| 第11楼 firstsail | 发表于 2008-01-16 13:27 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
那是您的“Packet驱动程序”没有加载成功。
请提供以下几个信息上来 (1)网卡的型号 (2)C盘根目录下Config.Sys内容 (3)C盘根目录下AutoExec.bat内容 (4)是直接使用Packet驱动程序,还是NDIS2程序转Packet驱动程序。 1:如果是直接使用Packet驱动程序,此时的驱动程序是“Com”后缀文件或“Exe”后缀文件。注意加软中断向量参数0x60,如 LH Rtspkt.com 0x60 2:如果是使用NDIS2驱动程序转Packet驱动程序,此时的驱动程序是“Dos”后缀文件。到“网站”下载“PacketDriver驱动程序”,解压后参考“说明.txt”文件 [ Last edited by firstsail on 2008-1-16 at 01:36 PM ] |
|
| 第12楼 tianmian | 发表于 2008-01-16 16:49 |
| 初级用户 发帖 41 积分 100 | |
|
但是我看过了 NIC 确实不为“00:00:00:00:00”,网卡驱动是按你提供的网站上的说明加载的
config.sys 如下:device=c:\windows\himem.sys/testmem:off device=c:\windows\emm386.exe noems novcpi devicehigh=c:\intel\protman.dos /i:c:\intel\RTL81xx devicehigh=c:\intel\dis_pkt.dos devicehigh=c:\intel\RTL81xx\Rtsnd.dos dos=high,umb stacks=12,256 files=30 注:intel是我网卡驱动所在的文件夹 autoexec.bat : path c:\windows;c:\windows\command lh smartdrv c:\intel\netbind.com 还有一个现象,我想在程序中(winsail启动之后)用printf,或者CHPrintf打印一些中间标志信息,但我发现在程序运行的时候这些根本没输出,但看程序执行流程,这些语句是肯定被执行过的 |
|
| 第13楼 tianmian | 发表于 2008-01-16 16:52 |
| 初级用户 发帖 41 积分 100 | |
|
对了,在autoexec.bat中系统好像自动在c:\intel\netbind.com加上了
rem - By Windows 98 Network - c:\intel\netbind.com |
|
| 第14楼 firstsail | 发表于 2008-01-16 18:12 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
有没有加载成功“Packet Driver”最简单的方法就是用debug程序查看60H中断向量的内容有没有"PKT DRVR"的字符串
(1)第一步,在DOS命令行下执行“Debug” (2)第二步,键入“d180”后回车, (3)第三步,注意D180指示的连续四个字节jj kk mm nn,如果是00 00 00 00,则没有加载成功,否则第四步 (4)第四步,键入d nnmm:kkjj回车(注:nn mm kk jj是第三步时的结果) (5)第五步,查看在屏幕右边有没有"PKT DRVR"的字符串,如果有则加载成功了,否则没有加载成功 [ Last edited by firstsail on 2008-1-16 at 07:16 PM ] |
|
| 第15楼 firstsail | 发表于 2008-01-16 18:16 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
Originally posted by tianmian at 2008-1-16 16:52: (1)改回“c:\intel\netbind.com” (2)Win98启动时迅速按住“F8”功能键,会弹出“Win98”菜单,共有6个菜单项,选择第“5”项进入“纯DOS”,即DOS7.0,或者将C盘根目录下的MsDos.Sys文件的“BootMenu”设置为“1”后重启动Win98,等到自动弹出菜单后执行第“5”项进入DOS7.0。修改msdos.sys文件前要先去掉文件的“只读”属性 BootMulti=0 BootMenu=1 BootWin=0 BootGui=0 (3)请将Protocol.ini文件贴进来看一下 [ Last edited by firstsail on 2008-1-16 at 07:03 PM ] |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |