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)客户端 ...
随机推荐
- 19-04【mysql】transaction,autocommit
本地使用mysql测试结果如下, 没有使用start transaction的情况下: 如果set autocommit=1,则每一条语句默认提交: 如果set autocommit=0,则这条语句默 ...
- SQL查询中连接--学习
一.开头说 不出意外,还是先说下SQL中所有的联接类型: 内连接.外连接(左连接.右连接 .全连接).交叉连接 然后接下来就是依次学习下各种连接的使用效果 二.各种连接秀 首先准备两张表 学生表: ...
- Android面试准备20190422
1.即时推送原理,采用的push推送模式,保持一个长连接,服务端和客户端连接后不再断开.所谓长连接,即是在一个TCP上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发送检测 ...
- Bootstrap+PHP表单验证实例
简单实用的Bootstrap+PHP表单验证实例,非常适合初学者及js不熟悉者,还有ajax远程验证 js验证表单 1 $(document).ready(function() { 2 $('#def ...
- HBase、MongoDB、cassandra比较
前言 传统数据库遇到的问题,数据量很大的时候无法存储:没有很好的备份机制:数据达到一定数量开始缓慢,很大的话基本无法支撑:因此我们需要探究更加合适的数据库来支撑我们的业务. HBase 什么是HBas ...
- 利用css实现带有省略号的段落
带有省略号的段落就是你只能在一行显示一段文字,文字过长是肯定不能完全显示的,如果默认的话,超出的文字会自动换行,撑大盒子. 1.这时需要设置white-space: nowrap,禁止换行.这样的话, ...
- Chapter6_访问权限控制_类的访问权限
在Java中,访问权限修饰词也可以用于确定库中的哪些类对于该库的使用者是可用的,类既不可以是private也不可以是protected的,对于类的访问权限,只有两种选择:包访问权限或者public.下 ...
- python3 利用pip命令安装包和模块
本文介绍如何利用pip命令安装Python相关的包和模块.在Python中有些方法或者模块是自带的功能,也叫(build-in),内构函数,实际使用,可能内构函数或者模块不能完成我们的任务,我们就需要 ...
- jmeter本身的一个bug记录
1.使用jmeter测http接口 2.断言接口返回的内容是否包含某串文本 3.结果:总是返回断言失败,即使接口返回的内容包含了该文本 接口返回的值为: {"code":" ...
- Shell中的数组及其相关操作
http://blog.csdn.net/jerry_1126/article/details/52027539 Shell中数据类型不多,比如说字符串,数字类型,数组.数组是其中比较重要的一种,其重 ...