一:系统的提出
在网络技术的发展下,基于LIN网的应用有成本低,速度快等特点. 由于客户机在商场pos机或者是工业现场通常采用DOS环境(因其实时和易于操作硬件, 以及占用磁盘空间少等特点),而在服务器端因界面设计和友好的用户接口常采用WIN9x开发
二:WIN9X端的实现
采用流行的WIN9X的网络设置与wsock32.ocx控件配合编程,可以使用 vb编写服务器界面实现 ,本系统采用tcp协议。
具体实现比较简单,网上有大量的例子。
四:DOS端网络设置
dos客户端需要安装ms-client for msdos(winnt4光盘上有,dos时代用的联网程序)
在AUTOEXEC.BAT中加载MS CLIENT FOR DOS的SOCKETS.EXE 套接字驱动程序
AUTOEXEC.BAT文件
c:\NET\netbind.com
C:\NET\umb.com
C:\NET\tcptsr.exe
C:\NET\sockets.exe
C:\NET\tinyrfc.exe
C:\NET\nmtsr.exe
C:\NET\emsbfr.exe
C:\NET\net start
修改net目录下的tcputils.ini文件,在[tcpglobal]段中加上hostname=localhost(你的机器名)
五:DOS端软件设计 采用tcp协议
例程如下:
//开发环境:DOS622 BC++3.1
/********************************************
文 件 名:client.c
开发成员:吴建平
功 能:DOS客户端发送消息
最后修改:2001-08-20
*********************************************/
//服务器名称从ini文件中取得
//用户输入消息后发送
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <mem.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sock_err.h>
#define BUFFER_SIZE 1000
#define LINE_LEN 70
#define INI_FILE "netsend.ini"
char sendbuf[BUFFER_SIZE];
char recvbuf[BUFFER_SIZE];
struct sockaddr_in server_addr, client_addr;
int f_getinikey(char * fname,char *section,char *key,char *value);
int sleep(int seconds )
{
long start_seconds, current_seconds, end_seconds;
time( &start_seconds );
end_seconds = start_seconds + (long) seconds;
do {
time( ¤t_seconds );
} while ( current_seconds < end_seconds );
return( 0 );
}
/*
** 这个程序是一个sockets客户端,它将尝试连接到一个远程服务器节点,发送数据,然后接收
*/
main( argc, argv )
int argc;
char *argv[];
{
int rc, i, len, total, size, sd, seconds;
char ls_server_ip[20];
char ls_localhost_name[20];
if ( argc < 2 ){
printf( "用法: %s <消息> \n", argv[0] );
exit( 1 );
}
/**********************************************************************
*从配置文件中读机器ip地址
**********************************************************************/
memset(ls_server_ip,0x00,sizeof(ls_server_ip));
if(f_getinikey(INI_FILE,"Server","IP",ls_server_ip) <= 0){
printf( "取服务器地址配置文件[netsend.ini]时出错\n");
exit( 1 );
}
memset(ls_localhost_name,0x00,sizeof(ls_localhost_name));
if(f_getinikey(INI_FILE,"LocalHost","HostName",ls_localhost_name) <= 0){
printf( "取本机地址配置文件[netsend.ini]时出错\n");
exit( 1 );
}
/*
** 建立一个局部通讯端点
*/
sd = socket( AF_INET, SOCK_STREAM, 0 );
if ( sd < 0 ) {
printf( "错误: socket() 调用失败 w/rc=%d, errno=%d\n", sd, errno );
exit( 1 );
}
printf( "socket() 返回 %d\n", sd );
/*
** 用必要的信息填充socket地址结构
** 远程服务器节点(引入连接的远程节点IP地址 和 端口)尝试连接服务器
** 调用 until循环 直到 远程服务器连接成功或超时
*/
server_addr.sin_family = AF_INET;
server_addr.sin_port =htons(6000);
server_addr.sin_addr.s_addr = inet_addr( ls_server_ip );
rc = connect( sd, (struct sockaddr *) &server_addr, sizeof(server_addr) );
if ( rc < 0 ) {
printf( "错误: connect() 调用失败 w/errno=%d\n", errno );
close_socket( sd );
exit( 1 );
}
printf( "确定连接 0x%lx\n", server_addr.sin_addr );
//seconds = atoi( argv[4] );
seconds = 1 ;
printf( "等待 %d 秒 在发送数据前...\n", seconds );
sleep( seconds );
/*
** Send the number of bytes specified on the command line to the server.
*/
//for (i=0; i<size; i++)
//sendbuf[i] = ( i % 26 ) + 'a';
strcpy( sendbuf,ls_localhost_name);
strcat( sendbuf,"|");
for (i=1; i<argc;i++)
strcat( sendbuf, argv[i]);
//strcpy(sendbuf , "hello,server!");
size = strlen(sendbuf) ;
len = send( sd, sendbuf, size, 0 );
total = 0;
printf( "正在尝试接收数据\n" );
do {
len = recv( sd, &recvbuf[total], size-total, 0 );
if ( len < 0 ) {
printf( "错误: recv() 调用失败 w/errno=%d\n", errno );
close_socket( sd );
exit( 1 );
}
printf( "recv() 返回 %d 字节\n", len );
total += len;
} while ( total < 2 );
printf( "接收缓冲区:\n" );
for (i=0; i<len; i++) {
printf( "%c", recvbuf[i] );
if ( i % LINE_LEN == LINE_LEN - 1 ) {
printf( "\n" );
}
}
printf( "\n" );
printf("消息发送成功\n") ;
/*
** 所有数据传输完成后,关闭socket后退出.
*/
close_socket( sd );
exit( 0 );
return;
}
在项目文件中需包含dos_socket.lib,在mircrosoft tcp/ip sdk for dos 1.0中有
微软的开发包(微软提供)比较适合 TCP/IP的套接字开发
Microsoft TCP/IP Sockets Development Kit 1.0 for dos & windows 开发包
http://www.csdn.net/develop/article/files/mstcpsdk.rar
(感谢郭红俊帮助上传)
coolstar 修改于2002-07-02
分享到:
相关推荐
综上所述,"基于TCP/IP的socket编程"是一个涉及网络通信基础、socket接口使用、客户端服务器交互以及故障恢复策略的复杂主题。通过学习和实践,开发者可以构建出更强大、更健壮的网络应用程序。
基于TCP/IP协议的Socket编程是网络编程的基础,它提供了一个可靠的数据流服务,可以实现客户端和服务器之间的数据交换。Java实现的Socket编程是基于TCP/IP协议的,可以满足各种网络应用的需求。
本主题将深入探讨“基于TCP/IP协议的网络编程”,特别是如何利用C++语言和Windows API函数来实现这一目标。 TCP(传输控制协议)和IP(因特网协议)是互联网上最基础的两个通信协议,它们构成了TCP/IP协议族的核心...
Windows环境下的TCP/IP编程主要依赖于Windows Socket API,简称Winsock,它为开发者提供了与平台无关的接口来实现TCP通信。本篇文章将深入探讨Windows下利用Winsock进行TCP/IP编程的关键知识点。 首先,我们来看`...
分析和学习这个源代码,开发者可以深入了解TCP/IP客户端程序的设计思路,如何处理网络通信中的异常,以及如何在VC++环境中优化性能和用户体验。 总的来说,这个项目为学习TCP/IP协议和C++网络编程提供了一个很好的...
本项目“基于TCP/IP用Java实现的聊天程序”旨在让学生或者开发者了解如何利用Java进行网络通信,设计并实现一个简单的聊天应用程序。这个课程设计涵盖了Java网络编程的基础知识,TCP连接的建立与维护,以及数据的...
通过这种方式,Java Socket编程实现了基于TCP/IP协议的服务端和客户端通信。每个报文的发送和接收都依赖于`InputStream`和`OutputStream`对象,它们分别用于读取和写入网络数据。在实际应用中,可能需要对报文进行更...
【基于TCP/IP的网络聊天程序】是一个利用Visual Studio 2010的MFC(Microsoft Foundation Classes)框架开发的应用程序,旨在实现一个简单的网络聊天功能。在这个项目中,开发者运用了套接字(socket)编程技术,这...
总之,C++ TCP/IP编程涉及网络通信的核心概念和实用技巧,包括套接字API的使用、TCP连接的建立与维护、数据的发送与接收等。结合实际的代码示例,开发者可以构建出稳定、高效的网络应用程序,满足各种复杂的需求。在...
android studio Socket客户端服务器通信 TCP/IP通信android studio Socket客户端服务器通信 TCP/IP通信android studio Socket客户端服务器通信 TCP/IP通信
本文将深入探讨如何使用C++在ROS环境下编写TCP/IP客户端和服务器端程序,确保其“绝对可用”。 首先,理解TCP/IP协议基础至关重要。TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,而...
本项目“C#编写的TCP/IP通信程序”就是基于C#的Socket编程实现的服务器和客户端示例,旨在帮助初学者理解和掌握TCP/IP通信的基本原理和编程技巧。 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输...
总的来说,TCP/IP服务器客户端通讯源代码的实现涉及网络编程、VC++编程和Winsock API的使用。通过学习和实践这些示例代码,你可以深入理解网络通信的底层机制,并具备开发自己TCP/IP应用的能力。
本主题将深入探讨基于TCP/IP的Socket如何实现多线程通信,包括服务器端和客户端的设计与实现。 1. **TCP/IP协议**:传输控制协议/互联网协议(TCP/IP)是互联网上广泛使用的通信协议标准。TCP负责数据的可靠传输,...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库,特别是通过继承`CSocket`类来实现一个基于TCP/IP协议的聊天室应用。MFC是微软提供的一套面向对象的C++库,它封装了许多Windows API,使得...
在本文中,我们将深入探讨如何实现ARM Linux与Windows 10上位机之间的TCP/IP网络通信。这个主题涉及多个技术领域,包括操作系统间的通信、网络编程以及特定的编程语言和库。以下是一份详细的概述: 1. **TCP/IP协议...
在VB6(Visual Basic 6)中实现TCP/IP通信是一项基础但重要的技能,尤其是在开发需要进行网络交互的应用程序时。TCP/IP(传输控制协议/互联网协议)是互联网上广泛使用的通信协议,它提供了可靠的双向通信,确保数据...
下面我们将详细探讨TCP/IP协议栈、客户端和服务器的角色以及在编程实现时可能涉及的关键技术。 TCP/IP协议栈分为四层,从下到上分别是链路层、网络层、传输层和应用层。在这个聊天程序中,主要涉及的是传输层的TCP...
本文提供了基于TCP/IP协议的网络聊天室的设计与实现的详细信息,涵盖了聊天室系统的架构、功能和实现细节,涉及到TCP/IP协议、C/S模式、MFC技术、套接字编程、多线程编程、文件传输、网络聊天室系统、服务器端编程和...