📄 dos internet
字号:
name=34></A></TD></TR></TBODY></TABLE><B>TCPSocket new_socket(void)</B>
<BR>创建一个TCPSocket变量,分配4KB的数据缓冲区。
<BR><B>返回值:若成功则</B>返回创建的TCPSocket变量句柄,若失败返回NULL。
<P><B>void release_socket(TCPSocket hl)</B> <BR>删除一个TCPSocket变量,释放所拥有的数据缓冲区。
<P><B>int tcp_kernal(TCPSocket hl)</B> <BR>处理PKT
Driver中断数据缓冲区中的TCP数据。应在程序中经常调用该函数,否则会使PKT Driver中断数据缓冲区中的数据因得不到处理而丢失。
<BR><B>返回值:0=错误。</B>
<P><B>int connect_tcp(TCPSocket sock,char *host, int port)</B>
<BR>在客户端建立一个TCP连接,用于与服务器端进行通讯。 <BR>host:服务器IP地址 <BR>port:服务器TCP端口号
<BR>Sock:返回建立的TCP<B>Socket。</B> <BR><B>返回值:1=成功,0=失败。</B>
<P><B>int disconnect_tcp(TCPSocket sock)</B> <BR>从客户端关闭建立的TCPSocket连接。
<P><B>int write_tcp(TCPSocket hl,char *buf,int len,int noptime)</B>
<BR>通过建立的TCPSocket连接,从客户端或服务器端向对方发送TCP数据。 <BR>Sock:建立连接的TCPSocket
<BR>buf:发送的数据内容,对非char型的数据用强制数据类型转换为char型就可以了。 <BR>len:以Byte为单位的发送的数据长度。
<BR>noptime:最大发送时间,秒为单位。 <BR>返回值:<B>实际发送的字节数。</B>
<P><B>int read_tcp(TCPSocket hl,char *buf,int mlen)</B>
<BR>接收通过TCOSocket发送来的TCP数据。 <BR>Sock:建立连接的TCPSocket <BR>buf:用于接收数据的内存缓冲区。
<BR>mlen:内存缓冲区的大小和可以接收的最大数据长度。 <BR>返回值:<B>实际接收的数据长度。</B>
<P><B>int read_tcp_time(TCPSocket hl,char *buf,int len,int tout)</B>
<BR>接收通过TCOSocket发送来的TCP数据。 <BR>Sock:建立连接的TCPSocket <BR>buf:用于接收数据的内存缓冲区。
<BR>len:待接收的数据长度。 <BR>tout:以秒为单位的最大等待接收时间。 <BR>返回值:<B>实际接收的数据长度。</B>
<P><B>int tcp_getline(TCPSocket sock, char *buf, int mlen)</B>
<BR>接收通过TCOSocket发送来的一行TCP数据(以回车符号为结束符)。 <BR>Sock:建立连接的TCPSocket
<BR>buf:用于接收数据的内存缓冲区。 <BR>mlen:内存缓冲区的大小和可以接收的最大数据长度。 <BR>tout:以秒为单位的最大等待接收时间。
<BR>返回值:<B>实际接收的数据长度。</B>
<P><B>void empty_tcp(TCPSocket hl)</B> <BR>清空TCOSocket数据缓冲区中的P数据。
<BR>Sock:建立连接的TCPSocket
<P><B>int listen_tcp(TCPSocket hl,int port)</B>
<BR>在服务器端对指定的TCP端口进行监听,等待客户端的连接。 <BR>port:监听的TCP端口号
<BR>Sock:返回建立的TCP<B>Socket。</B> <BR>返回值:1<B>=成功,0=失败。</B>
<P><B>void close_tcp_socket(TCPSocket hl)</B> <BR>从服务器端关闭与客户的TCPSocket连接。
<BR>Sock:建立连接的TCP<B>Socket。</B>
<P><B>int peer_tcp_data(TCPSocket hl)</B>
<BR><B>查看TCPSocket数据缓冲区中是否有客户发送的数据。</B> <BR>Sock:建立连接的TCPSocket
<BR>返回值:<B>数据缓冲区中数据的长度。</B>
<P><B>void get_tcp_peer(TCPSocket hl,char *ip)</B>
<BR><B>查看建立TCPSocket连接的客户的IP地址。</B> <BR>Sock:建立连接的TCPSocket <BR>ip:返回客户的IP地址
<P><B><FONT color=#cc0000><A
href="tcpdsample.htm">1.TCP服务器程序样例</A></FONT></B>
<BR><B><FONT color=#cc0000><A
href="tcpcsample.htm">2.TCP客户端程序样例</A></FONT><FONT
color=#ffffff><FONT size=+2>.</FONT></FONT></B>
<DIV align=right><FONT color=#ffffff><FONT size=+2>。</FONT></FONT><A href="#100">页首</A></DIV>
<TABLE cols=1 width="100%" bgColor=#ccffff border=0>
<TBODY>
<TR>
<TD><B><FONT color=#000099><FONT size=+1>HTTP
服务器编程APIs</FONT></FONT></B><A name=4></A></TD></TR></TBODY></TABLE><B>void
sethttpport(int port)</B> <BR>设定 HTTP 服务器端口,一般为80。 <BR>Port:设定的端口号。 <BR>
<BR><B>int gethttpport(void)</B> <BR>取HTTP服务器监听的端口号。 <BR> <BR><B>int
sethttppass(char *path)</B> <BR>设定HTTP服务器网页文件根目录。 <BR> <BR><B>void
sethttptime(int nop,int srv)</B> <BR>设定HTTP客户(浏览器)服务时间。 <BR>Nop:
最长HTTP命令服务时间,通常30秒. <BR>Srv: 单次最长HTTP客户服务时间,通常120秒。 <BR> <BR><B>void
starthttp(int n)</B> <BR>启动 HTTP 服务器。 <BR>n:Http请求数据缓冲区个数,一般为3。 <BR><FONT
color=#ffffff>.</FONT> <BR><B>void releaseserver(void)</B> <BR>释放 HTTP
服务器所占的常规内存资源(12KB左右)。 <BR> <BR><B>int checkhttp(void)</B> <BR>查询是否有 HTTP
客户访问。0=否,1=请求静态网页,2=请求动态网页(用户采用Form等方式上传参数)。 <BR> <BR><B>void
httprequest(void)</B> <BR>响应 HTTP 静态网页服务请求,返回请求的网页、或文件。 <BR> <BR><B>char
*gethttpuserinput(void)</B> <BR>获取动态网页请求时的用户输入参数。
<P><B>TCPSocket gethttpsocket(void)</B> <BR>获取当前建立的用于HTTP数据传输的TCPSocket。 <BR>
<BR><B>char * gethttppeer(void)</B> <BR>获取访问者的IP地址。
<P><B>void filetype(char* arg,char *type) </B> <BR>返回HTTP文件类型。
<BR>arg:代入的HTTP请求的文件名 <BR>type:返回HTTP格式的文件类型。 <BR>下面是常见的HTTP文件类型:
<TABLE cols=2 width="91%" border=1>
<TBODY>
<TR>
<TD>text/html <BR>image/jpeg <BR>image/gif <BR>application/zip
<BR>application/x-wav; <BR>application/octet-stream</TD>
<TD>Homepage, text, or ascii file <BR>JPEG graphic file <BR>Gif
graphic file <BR>ZIP file <BR>Windows WAV file <BR>Exe file, Java
Class, or Executeable File </TD></TR></TBODY></TABLE><B>int httphead(char
*type,long int len)</B> <BR>生成返回给浏览器的HTTP 数据文件头。 <BR>Type:
数据类型,代入文件名就可以了。程序调用<B>filetype函数自动进行转换。</B> <BR>Len: 送出的 HTTP 数据长度。 <BR>
<BR><B><A
href="httpdsample.htm">HTTP服务器样例程序</A></B>
<DIV align=right><FONT color=#ffffff><FONT size=+2>。</FONT></FONT><A href="#100">页首</A></DIV>
<TABLE cols=1 width="100%" bgColor=#ccffff border=0>
<TBODY>
<TR>
<TD><B><FONT color=#000099><FONT size=+1>FTP服务器编程APIs</FONT></FONT></B><A
name=41></A></TD></TR></TBODY></TABLE>对嵌入式计算机,FTP服务器功能一般仅用于管理员远程更新嵌入式计算机的程序和数据文件,而不是提供广义的文件传输服务。为减小对常规内存的耗费(DOS程序常规内存只有640KB,很宝贵),FTP服务器采用单线程设计,也就是说一次只接受一个FTP客户的访问,这一点和一般多线程FTP服务器不同。
<P><B>void setcurrentpath(char *path)</B> <BR>设定FTP服务器网络文件服务根目录。 <BR>
<BR><B>int setftpuserpass(char *user,char *pass,int right)</B>
<BR>设定FTP用户名、口令和访问权限。可用该函数设定多个不同权限的用户。 <BR>User: 用户名, 4-10个字符. ""=匿名用户。
<BR>Pass: 口令。对匿名用户该参数设定为Pass="". <BR>Right:访问权限,0=List, Download;1=List,
Download, Upload;2=List, Download, Upload, Delete, Rename, Create <BR>
<BR><B>void setftptime(int nop,int srv)</B> <BR>设定用户FTP服务时间。
<BR>Nop:单条FTP指令最长服务时间,一般30秒。 <BR>Srv:每次访问最长服务时间,一般300秒。 <BR> <BR><B>void
startftp(void)</B> <BR>启动 FTP 服务器程序。 <BR> <BR><B>void releaseftp(void)</B>
<BR>释放FTP服务器程序占用的常规内存资源(9KB)。 <BR> <BR><B>int checkftp(void)</B> <BR>查询是否有 FTP
客户访问。1=是,0=否。
<P><B>void Serveftp(void)</B> <BR>响应用户 FTP 文件服务请求。 <BR> <BR><B><A
href="ftpdsample.htm">FTP服务器样例程序</A></B>
<DIV align=right><FONT color=#ffffff><FONT size=+2>。</FONT></FONT><A href="#100">页首</A></DIV>
<TABLE cols=1 width="100%" bgColor=#ccffff border=0>
<TBODY>
<TR>
<TD><B><FONT color=#000099><FONT
size=+1>Internet客户机编程APIs</FONT></FONT></B><A
name=5></A></TD></TR></TBODY></TABLE><B><FONT
color=#006600>1.电子邮件发送API</FONT></B> <BR><B>int smtpsend(char *host,int
port,char *from,char *to,char *cc,char *bcc,char *title,char *body)</B>
<BR>Host:电子邮件发送服务器(SMTP server)IP地址 <BR>Port:电子邮件发送服务器(SMTP server)端口,通常为25.
<BR>From:发邮件人的电子邮件地址 <BR>To:收邮件人的电子邮件地址 <BR>Cc:同时转发给的收邮件人的电子邮件地址 <BR>Bcc:
同时转发给的收邮件人的电子邮件地址 <BR>Title: 电子邮件标题 <BR>Body: 电子邮件内容. <BR>返回值: 0=失败, >0 = 成功
<BR><B><A
href="smtpcsample.htm">样例程序</A></B>
<BR><FONT color=#ffffff>.</FONT> <BR><B><FONT
color=#006600>2.Http客户(浏览器)API</FONT></B> <BR><B>int httpget(char *host,int
port,char *url, char *lfile,int timeout)</B> <BR>Host: HTTP服务器IP地址。 <BR>Port:
HTTP服务器监听端口,通常为80. <BR>Url: 发送给HTTP服务器的网页文件请求命令,或上传给HTTP服务器的数据。
<BR>Lfile:接收的HTTP服务器返回信息,存放在以该字符串命名的文件中。 <BR>Timeout: 最长等待任务完成时间。 <BR>返回值: 0=失败,
>0 = 成功 <BR><B><A
href="httpcsample.htm">样例程序</A></B>
<P><B><FONT color=#006600>3.FTP客户APIs</FONT></B> <BR><B>int ftpdownload(char
*server,int port,char *user,char *pass,char *rfile,char *lfile,int timeout)</B>
<BR>Host: FTP服务器IP地址。 <BR>Port: FTP服务器监听端口,通常为21. <BR>User: FTP用户名 <BR>Pass:
用户口令 <BR>Rfile:待下载的服务器文件名和路径。 <BR>Lfile:下载后的存盘文件名和路径。 <BR>Timeout: 最长等待任务完成时间。
<BR>返回值: 0=失败, >0 = 成功 <BR> <BR><B>int ftpupload(char *server,int port,char
*user,char *pass,char *rfile,char *lfile,int tout)</B> <BR>Host: FTP服务器IP地址。
<BR>Port: FTP服务器监听端口,通常为21. <BR>User: FTP用户名 <BR>Pass: 用户口令
<BR>Rfile:服务器存盘文件名和路径。 <BR>Lfile:待上载后文件名和路径。 <BR>Timeout: 最长等待任务完成时间。 <BR>返回值:
0=失败, >0 = 成功
<P><B><A href="ftpc.htm">样例程序</A></B>
<DIV align=right><FONT color=#ffffff><FONT size=+2>。</FONT></FONT><A href="#100">页首</A>.</DIV>
<TABLE cols=1 width="100%" bgColor=#ccffff border=0>
<TBODY>
<TR>
<TD><B><FONT color=#000066><FONT
size=+1>服务器集成函数(内部使用)</FONT></FONT></B></TD></TR></TBODY></TABLE>void
starthttpftp(int n); <BR>void releasehttpftp(void); <BR>int checkhttpftp(void);
<BR>void sethttpftpport(int port); <BR>char *getechoinput(void);
<DIV align=right><A href="#100">页首</A>.</DIV>
<TABLE cols=1 width="100%" bgColor=#ccffff border=0>
<TBODY>
<TR>
<TD><B><FONT color=#000066><FONT size=+1>使用限制</FONT></FONT></B><A
name=6></A></TD></TR></TBODY></TABLE>
<BR> 开发、评估版的APIs库做了使用时间限制,所有APIs将在应用程序运行15分钟后失效。
<DIV align=right> <FONT color=#ffffff><FONT size=+2>。</FONT></FONT><A href="#100">页首</A></DIV>
<TABLE cols=1 width="100%" bgColor=#ccffff border=0>
<TBODY>
<TR>
<TD><B><FONT color=#000066><FONT size=+1>模块下载</FONT></FONT></B><A
name=7></A></TD></TR></TBODY></TABLE> <BR>
<A
href="网络编程模块.zip">网络编程模块(200KB)</A>
<DIV align=right><FONT color=#ffffff><FONT size=+2>。</FONT></FONT><A href="#100">页首</A></DIV>
<TABLE cols=1 width="100%" bgColor=#ccffff border=0>
<TBODY>
<TR>
<TD><B><FONT color=#000066><FONT
size=+1>附录:DOS网卡驱动程序的安装</FONT></FONT></B><A
name=8></A></TD></TR></TBODY></TABLE> <BR> 本软件包采用DOS Ethernet PACKPET
Driver作为低层驱动,与以前的Win31上网相似,需在Autoexec.bat中添加PACKPET Driver。PACKPET
Driver是一个硬件相关的设备驱动程序,不同网卡的PACKPET Driver是不同的,一般可在网卡安装盘DOS目录或PCPKT目录下找到,也可到<A
href="http://www.simtel.net">www.simtel.net</A>下载。对NE2000网卡,PCPKT
driver程序为ne200epd.com,这时在Autoexec.bat中加入<FONT color=#006600>ne220epd.com
0x60</FONT><FONT color=#000000>就可以了。下面是一个完整的</FONT>Autoexec.bat文件的例子。 <BR>
<BR>Autoexec.bat <BR><FONT color=#006600>mouse</FONT> <BR><FONT
color=#006600>de22xpd.com 0x60 </FONT><FONT color=#cc0000>(Dlink网卡驱动)</FONT>
<BR>另外,建议在Config.sys中加入对扩展内存的支持,并将DOS驻留到高端。下面<FONT
color=#000000>是一个完整的Config</FONT>.sys文件的例子。 <BR>Config.sys <BR><FONT
color=#006600>DEVICE=HIMEM.SYS</FONT> <BR><FONT
color=#006600>DOS=HIGH,UMB</FONT> <BR><FONT color=#006600>FILES=40</FONT>
<DIV align=right><FONT color=#006600> </FONT> <FONT color=#ffffff><FONT
size=+2>。</FONT></FONT></DIV>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -