`
no791no
  • 浏览: 18988 次
社区版块
存档分类
最新评论

tcp简单实现C/S模式程序,测试成功

 
阅读更多

tcp简单实现C/S模式程序,测试成功
2010年03月25日
  server:
  #include
  #include
  #pragma comment(lib,"ws2_32")
  main()
  {
  WSADATA wsaData;
  SOCKET ListeningSocket;
  SOCKET NewConnection;
  SOCKADDR_IN ServerAddr;
  SOCKADDR_IN ClientAddr;
  int port=5150;
  int ClientAddrLen =sizeof(ServerAddr);
  char buf[4096];
  //startup...
  if((WSAStartup(MAKEWORD(2,2),&wsaData))!=0)
  {
  printf("初始化失败");
  exit(-1);
  }
  // listening....
  if((ListeningSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET)
  {
  printf("创建套接字失败");
  exit(-1);
  }
  ServerAddr.sin_family = AF_INET;
  ServerAddr.sin_port = htons(port);
  ServerAddr.sin_addr.s_addr =htons(INADDR_ANY);
  // bind..
  if(bind(ListeningSocket,(SOCKADDR *)&ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR)
  {
  printf("bind error");
  exit(-1);
  }
  if(listen(ListeningSocket,5)==SOCKET_ERROR)
  {
  printf("listening error..");
  exit(-1);
  }
  printf("listening...");
  //accept..
  if((NewConnection = accept(ListeningSocket,(SOCKADDR *)&ClientAddr,&ClientAddrLen))==INVALID_SOCKET)
  {
  printf("accept error..");
  exit(-1);
  }
  while(1)
  {
  int bytes;
  if((bytes=recv(NewConnection,buf,sizeof(buf),0))==SOCKET_ERROR)
  {
  printf("recv error...");
  exit(-1);
  }
  buf[bytes]='\0';
  printf("data from %s:%s\n",inet_ntoa(ClientAddr.sin_addr),buf);
  if(send(NewConnection,buf,bytes,0)==SOCKET_ERROR)
  {
  printf("send error..");
  exit(-1);
  }
  }
  closesocket(NewConnection);
  closesocket(ListeningSocket);
  WSACleanup();
  }
  //******************************************************************************************************************************//
  client:
  [/b]
  #include
  #include
  #pragma comment(lib,"ws2_32")
  main()
  {
  WSADATA    wsaData;
  SOCKET     s;
  SOCKADDR_IN   ServerAddr;
  int       port =5150;
  char buf[4096];
  int bytes;
  if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
  {
  printf("stratup error..");
  exit(-1);
  }
  if((s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET)
  {
  printf("socket error..");
  exit(-1);
  }
  ServerAddr.sin_family =AF_INET;
  ServerAddr.sin_port =  htons(port);
  ServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
  if(connect(s,(SOCKADDR *) &ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR)
  {
  printf("connect error...");
  exit(-1);
  }
  //****************************************************************************//
  while(1)
  {
  printf(">>");
  gets(buf);
  if(send(s,buf,strlen(buf),0)==SOCKET_ERROR)
  {
  printf("send error..");
  exit(-1);
  }
  if(bytes=recv(s,buf,sizeof(buf),0)==SOCKET_ERROR)
  {
  printf("recv error");
  exit(-1);
  }
  }
  buf[bytes]='\0';
  printf("data from %s:%s",inet_ntoa(ServerAddr.sin_addr),buf);
  //******************************************************************************//
  closesocket(s);
  WSACleanup();
  }
  [b]
虽说非常简单,但是经过不断的丰满功能 也是个开始的框架 只是任何网络编程书中最最基础和简单的例子,啧啧,花了点点时间测试~ 咳咳,会做出来有用的东西的…
分享到:
评论

相关推荐

    Qt5写的TCP的C/S模式的文件传输小程序(带界面的局域网通信)(带源码注解)

    TCP的C/S模式的文件传输小程序(带界面的局域网通信), 通过测试,即使是在局域网里面上传大于1G多的文件,也是可以只需要几秒钟, 并且解决了粘包问题, 并且附带源码(外加详细的注释), 生成带界面可执行的...

    TCP/IP教程TCP/IP基础

    21.2.7 测试TCP/IP 231 21.3 小结 232 第22章 Windows 98拨号网络 233 22.1 配置拨号网络适配器 233 22.2 安装拨号网络 234 22.3 服务器类型 235 22.4 编写脚本 238 22.5 多重链接 238 22.6 PPTP 239 22.6.1 安装及...

    tcp winsock 编程

    tcp winsock 编程有需要的朋友可以下载看看 此源码在vc6.0测试下通过 如有问题联系 ipodmail@126.com

    TCP/IP技术大全

    23.5 简单TCP/IP服务 250 23.6 远程访问服务(RAS) 250 23.7 DHCP服务器 252 23.7.1 安装DHCP服务器服务 252 23.7.2 控制DHCP服务器服务 253 23.7.3 压缩DHCP数据库 253 23.7.4 管理DHCP 254 23.8 使用Microsoft DNS ...

    基于UDP协议的网络聊天程序

    UDP 协议是无连 接的协议,是 TCP/IP 协议的一种分层协议。...C/S 模式,模 拟网络上的聊天软件, 实现在局域网上两台主机之间的通信。 且经过测试, 该聊 天程序能够正常运行,实现了设计目标。

    TCP-IP技术大全

    还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 <br> 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次...

    计算机网络课程设计报告-基于UDP协议的聊天程序.doc

    本设计实现的聊天工具要求在Microsoft Visual C++ 6.0上,编写一个程序,采用C/S模式,模拟网络上的聊天软件,实现在局域网上两台主机之间的通信。且经过测试,该聊天程序能够正常运行,实现了设计目标。

    TCP/IP技术大全(中文PDF非扫描版)

    还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3...

    基于JAVA的仿QQ聊天系统的设计

    以JAVA技术为核心,利用计算机局域网通信机制原理(例如TCP/IP协议、客户端/服务器端模式(C/S模式)、网络编程设计方法等)完成了一款适合局域网的仿QQ聊天系统。该系统主要由一个聊天服务器端程序和一个聊天客户端...

    C#套接字编程实例_UDP_TCP通信源码实例

    首先从原理上解释一下采用Socket 接口的网络通讯,这里以最常用的 C/S 模式作为范例,首先,服务端有一个进程(或多个进程)在指定的端口等待客户来 连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按...

    TCP/IP详解

    21.2.7 测试TCP/IP 231 21.3 小结 232 第22章 Windows 98拨号网络 233 22.1 配置拨号网络适配器 233 22.2 安装拨号网络 234 22.3 服务器类型 235 22.4 编写脚本 238 22.5 多重链接 238 22.6 PPTP 239 22.6.1 安装及...

    御剑高速tcp全端口扫描工具

    IOCP网络编程模型也叫完成端口,完成端口会充分利用Windows内核来进行I/O的调度,理论上和大量的实践中证明是用于WIN中C/S通信模式中性能最好的网络通信模型,没有之一(希望别打脸) 这是一个基于.NET 2.0编写的...

    仿QQ聊天系统源码.rar

    理论研究与实践相结合,利用计算机技术、数据库技术,java技术等对腾讯QQ聊天系统的开发设计进行研究以JAVA技术为核心,利用计算机局域网通信机制原理(例如TCP/IP协议、客户端/服务器端模式(C/S模式)、网络编程设计...

    软件测试经典面试题 (超实用)

    20、简述一下c/s模式或者b/s模式? 33 21、TCP/UDP有哪些区别? 34 22、ISO模型?HUB、tch、Router是ISO的第几层设备? 34 23、内存有哪几种存储组织结构.请分别加以说明? 34 人力资源面试题 34 1、你的测试职业...

    C#网络通信之------同步套接字开发

    这是一个测试版的TCP/IP网络通信的C/S模式通信程序,后续完善工作,之后传上来...

    java应用软件程序设计

    网络聊天室 (B/S模式) 14.1. 设计内容 14.2. 设计要求 14.3. 总体设计 14.4. 具体设计 14.4.1. 运行效果与程序发布 14.4.2. 客户端主类ClientChat 14.4.3. 客户端输入妮称界面...

    串口WIFI-串口转WIFI模块

    与固件中的虚拟串口服务器程序一起用于实现无线串口功能 其它 用户手册 全部AT+指令集的使用方法Demo源码 2.功能定义 支持802.11b-only、802.11b/g mix 支持1~13信道 支持1M、2M、5.5M、6M...

    基于Unity3D多平台网络斗地主的设计与实现毕业设计.doc

    12 4.2.2 基于C/S模式的客户端设计流程图 12 4.3 游戏逻辑程序结构 13 4.3.1 数据层 13 4.3.2 控制层 13 4.3.3 显示层 14 4.4 游戏设计流程图 14 4.5 数学建模 15 第5章 详细设计与系统实现 16 5.1 斗地主洗牌算法 ...

    在线考试系统文献综述

    利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用JSP技术,我开发了基于B/S模式多用户在线考试系统这一程序。它运用方便、操作简单,效率很高(同时,它要求计算机配置也很高,尤其...

Global site tag (gtag.js) - Google Analytics