c++实现简单的客户端和服务端
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++实现简单的客户端和服务端的更多相关文章
- 用socket写一个简单的客户端和服务端程序
用来练手写写socket代码 客户端代码 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h ...
- zeromq学习笔记2——简单的客户端和服务端测试程序
1.前言 zeromq提供了guide,http://zguide.zeromq.org/,可以帮助新手快速上手,提供了C\C++\PHP等多种语言. 2.测试程序 使用zeromq给的hwserve ...
- asp.net 简单记录请求的客户端和服务端 处理时间
最近项目需要简单记录一下 ajax客户端和服务端处理时间,服务端时间的思路是借用BeginRequest和EndRequest事件,为了不影响现有接口返回的数据格式,因此服务处理时间放在respons ...
- linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
单客户端和服务端的通信(基于UDP) 代码 服务端代码socket3.c #include<sys/types.h> #include<sys/socket.h> #inc ...
- FastSocket学习笔记~再说客户端与服务端的组成
废话多说 很久之前,我写过几篇FastSocket的文章,基本属于使用的方法,而缺乏对概念的总结讲解,而本讲就是弥补一下上几讲的不足,将核心的模块再说说,再谈谈,再聊聊! 首先FastSocket由C ...
- [Java]Hessian客户端和服务端代码例子
简要说明:这是一个比较简单的hessian客户端和服务端,主要实现从客户端发送指定的数据量到服务端,然后服务端在将接收到的数据原封不动返回到客户端.设计该hessian客户端和服务端的初衷是为了做一个 ...
- Fresco 源码分析(二) Fresco客户端与服务端交互(3) 前后台打通
4.2.1.2.4 PipelineDraweeControllerBuilder.obtainController()源码分析 续 上节中我们提到两个核心的步骤 obtainDataSourceSu ...
- 用PHP的socket实现客户端到服务端的通信
服务端 <?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); //本地IP $address = 'loca ...
- C# TCP实现多个客户端与服务端 数据 与 文件的传输
C#菜鸟做这个东东竟然花了快三天的时间了,真是菜,菜,菜--- 下面是我用C#写的 一个简单的TCP通信,主要的功能有: (1) 多个客户端与服务器间的数据交流 (2)可以实现群发的功能 (3)客户端 ...
随机推荐
- [Java]刷题中的Java基础
数组 取数组长度是属性length ArrayList ArrayList<Integer> maxRootHeap = new ArrayList<Integer>(); m ...
- 【python路飞】编码 ascii码(256位 =1个字节)美国;unicode(万国码)中文 一共9万个 用4个字节表示这9万个子 17位就能表示
8位一个字节 1024字节 1KB 1024KB 1MB ASCII码不能包含中文.创建了unicode,一个中文4个字节.UTF-8一个中文3个.GBK中国人用的只包含中文2个字节 升级 Un ...
- centos7 安装部署zabbix
由于zabbix提供集中的web监控管理界面,因此服务在web界面的呈现需要LAMP架构支持. php 连接mysql服务,因为7版本mysql要收费,所以我们安装mariadb, 一.安装LAMP环 ...
- 通过ssh StrictHostKeyChecking解决自动化git项目问题
SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击.但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就需要一种手段能够绕过 SSH 的公钥检查. 首 ...
- mybatis学习笔记1.零碎记录
1.conf.xml文件中的一些标签先后顺序会有影响. conf.xml文件<configuration>标签对里面配置的<typeAliases>标签的位置还有讲究?我将其放 ...
- jmeter手写脚本,使用正则获取cookie(禁用cookies管理器)
注:这里以bugfree为例 1.bugfree登录时会有重定向,这会导致每个URL都会有.因此要手动获取cookie的时候,需要去掉重定向勾选 正则获取动态PHPsession 获取到值后,放到信息 ...
- 201771010134杨其菊《面向对象程序设计(java)》第十三周学习总结
第十三周学习总结 第一部分:理论知识 第11章 事件处理(事件处理基础; 动作; 鼠标事件;AWT事件继承层次) 1. 事件源(event source):能够产生事件的对象都可 以成为事件源,如文本 ...
- 使用Tenorshare iCareFone for mac为iPhone做系统修复
tenorshare icarefonemac中文版采用一键式方法来保护,修理,清洁,优化并最终加快您的iPhone,iPad和iPod的速度.它可以帮助您轻松解决所有iOS问题,并让您的iPhone ...
- 最小化webpack项目
先把代码贴出来,以后慢慢加说明 参考资料:入门 Webpack,看这篇就够了 / webpack 搭建自动打开,刷新浏览器 一.功能代码1.index.html <!DOCTYPE html&g ...
- java -关于包装类自动装箱与拆箱拓展+整形常量池
关于自动装箱与拆箱 1.包装类与基本数据类型的自动转换,叫装箱和拆箱(类型自动转换) 2.自动装箱拆箱是在编译器,编译器自动配转换方法,实现装箱和拆箱.所以这个过程发生在编译期 3.只有需要相互类型转 ...