server.cpp

#include<WinScok.h>
#include<windows.h>
#include<stdio.h>
int main()
{
WORD ver = MAKEWORD(2,2);
WSDATA dat;
WSAStartup(ver. &dat); SOCKET _sock = socket (AF_INET.SOCK_STREAM,IPPROTO_TPC);
sockaddr_in _sin = {};
_sin.sin_family = AF_INET;
_sin,sin_port = htons(4567);
_sin.sin_addr.S_un.S_addr = inet_addr(:12.0.0.1");
if(bind(_sock,(sockaddr*) &_sin,sizeof(_sin)) == SOCKET_ERROR)
{
printf"绑定用于接受客户端的连接端口失败"); }
else{
printf("绑定端口成功\n");
}
if(listen(_sock,5) == SOCKET_ERROR)
{
printf("监听端口失败..\n");
}
sockaddr_in clientAddr= {};
int nAddrLen = sizeof(sockaddr_in);
SOCKET_cSOCK = INVALID_SOCKET; _cSOCK = accept(_sock,(sockaddr*)&clientAddr,&nAddrLen);
if(_cSock == INVALID_SOCKET)
{
printf("错误,接收到无效的哭护短SOXKET..\n");
}
printf("新客户端加入:socket = %d ,IP = %s \n",_cSock,inet_ntoa(clientAddr.sin_addr)); char _recvBuf[128] = {};
while(true)
{
int nLen = recv(_cSOCK,_recvBuf,128,0);
if(nLen <= 0)
{
printf("客户端已退出,任务结束");
break;
}
printf("收到命令:%s \n",_recvBuf);
if(strcmp(_recvBuf,"getName") == 0)
{
char amgBuf[] = "klose";
send(_cSOCK,magBuf,strlen(msgBuf)+1,0); }
else
{
char msgBuf[] = "???";
send(_cSock,msgBuf,strlen(msgBuf)+1,0); }
closesocket(_sock)l WSACleanup();
getchar();
return 0; } }

client.cpp

#include<WinSock2.h>
#include<windows.h>
#include<stdio.h> int main()
{
WORD ver = MAKEWORD(2,2);
WSADATA dat;
WSAStartup(ver,&dat); SOCKET _sock = socket(AF_INET,SOCK_STREAM,0)
if(_socl == INVALID_SOCKET)
{
printf("错误,建立Socket失败...\n"); }
else
{
printf("建立Socket成功...\n");
}
socketaddr_in _sin = {};
_sin.sin_family = AF_INET;
_sin.sin_port = htons(4567);
_sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); int ret = connest(_sock,(sockaddr *)&_sin,sizeof(socketaddr));
{
printf("错误,连接服务器失败...\n")l }
else
{
printf("连接服务器成功...\n"); }
char cmdBuf[128] = {};
while(true)
{
scanf("%s",cmdBuf)'
if (strcmp(cmdBuf,"exit) == 0)
{
break;
}
else
{
send(_sock,cmdBuf,strlen(cmdBuf)+1 ,0);
} char recvBuf[256] = {};
int nlen = recv (_sock,recvBuf,156,0);
if(nlen > 0)
{
printf("接受数据:%s \n",recvBuf)'
}
}
closesocket(_sock);
WSACleanup();
getchar();
return 0; }

c++实现简单的客户端和服务端的更多相关文章

  1. 用socket写一个简单的客户端和服务端程序

    用来练手写写socket代码 客户端代码 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h ...

  2. zeromq学习笔记2——简单的客户端和服务端测试程序

    1.前言 zeromq提供了guide,http://zguide.zeromq.org/,可以帮助新手快速上手,提供了C\C++\PHP等多种语言. 2.测试程序 使用zeromq给的hwserve ...

  3. asp.net 简单记录请求的客户端和服务端 处理时间

    最近项目需要简单记录一下 ajax客户端和服务端处理时间,服务端时间的思路是借用BeginRequest和EndRequest事件,为了不影响现有接口返回的数据格式,因此服务处理时间放在respons ...

  4. linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)

    单客户端和服务端的通信(基于UDP)   代码 服务端代码socket3.c #include<sys/types.h> #include<sys/socket.h> #inc ...

  5. FastSocket学习笔记~再说客户端与服务端的组成

    废话多说 很久之前,我写过几篇FastSocket的文章,基本属于使用的方法,而缺乏对概念的总结讲解,而本讲就是弥补一下上几讲的不足,将核心的模块再说说,再谈谈,再聊聊! 首先FastSocket由C ...

  6. [Java]Hessian客户端和服务端代码例子

    简要说明:这是一个比较简单的hessian客户端和服务端,主要实现从客户端发送指定的数据量到服务端,然后服务端在将接收到的数据原封不动返回到客户端.设计该hessian客户端和服务端的初衷是为了做一个 ...

  7. Fresco 源码分析(二) Fresco客户端与服务端交互(3) 前后台打通

    4.2.1.2.4 PipelineDraweeControllerBuilder.obtainController()源码分析 续 上节中我们提到两个核心的步骤 obtainDataSourceSu ...

  8. 用PHP的socket实现客户端到服务端的通信

    服务端 <?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); //本地IP $address = 'loca ...

  9. C# TCP实现多个客户端与服务端 数据 与 文件的传输

    C#菜鸟做这个东东竟然花了快三天的时间了,真是菜,菜,菜--- 下面是我用C#写的 一个简单的TCP通信,主要的功能有: (1) 多个客户端与服务器间的数据交流 (2)可以实现群发的功能 (3)客户端 ...

随机推荐

  1. 【搬运】 Page Object 官方文档 (新增了Widget特性)

    Appium Java client has facilities which components to [Page Object](https://github.com/SeleniumHQ/se ...

  2. Python的range()函数用法

    Python的range()函数有三种用法,简单地说就是下图的三种用法: 运行结果如下:

  3. 正向与反向拓扑排序的区别(hdu 1285 确定比赛名次和hdu 4857 逃生)

    确定比赛名次 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  4. WebService关于Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart)问题解决

    错误原因:需要mail.jar和activation.jar. Solution:Web Services Required Jars Download Instructions http://www ...

  5. MySQL索引优化步骤总结

    在项目使用mysql过程中,随着系统的运行,发现一些慢查询,在这里总结一下mysql索引优化步骤 1.开发过程优化 开发过程中对业务表中查询sql分析sql执行计划(尤其是业务流水表),主要是查看sq ...

  6. 使用 python 操作 mongodb 常用的操作

    pymongo 的安装命令 pip install pymongo. import pymongo 数据库及集合查询(创建) 连接数据库 查询数据库中的数据库 查询数据库中的集合 创建数据库和集合只需 ...

  7. 创建服务的注册与发现 Eureka (四)

    一.eureka注册中心 1.创建一个工程 工程名:microservicecloud-eureka-7001 2.向pom文件中增加如下: <dependencies> <!--e ...

  8. jQuery基础方法:each(),map(),index(),is()

    jQuery的each()方法和forEach()的区别: each()返回调用自身的jQuery对象,可用于链式调用 $('div').each(function(idx){ //找到所有div元素 ...

  9. Django使用cropbox包来上传裁剪图片

    1.使用cropbox包来上传裁剪图片,可见介绍:https://www.jianshu.com/p/6c269f0b48c0I ImgCrop包包括:css--style.css,js--cropb ...

  10. springboot无法加载oracle驱动终极解决

    .ctrl+shirt+s .找到 Maven: com.oracle:ojdbc6: .找到classes 下的路径C:\Users\Administrator\.m2\repository\com ...