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)客户端 ...
随机推荐
- POJ-3159.Candies.(差分约束 + Spfa)
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 40407 Accepted: 11367 Descri ...
- docker制作镜像
使用Dockerfile脚本创建jdk1.8镜像 新建jdk目录:(-p表示需要父目录,不然就会出错) mkdir -p /usr/local/dockerjdk1. 将jdk的压缩文件复制到上面的路 ...
- Python校验文件MD5值
import hashlib import os def GetFileMd5(filename): if not os.path.isfile(filename): return myHash = ...
- jqgrid点击搜索无法重置参数问题
var searchClick=false;//判断是否是第一次点击搜索 //当搜索按钮被单击时触发 function searchData(){ //创建jqGrid组件 console.log(' ...
- 53-java中的queue
java.util 接口 Queue<E> 类型参数: E - collection 中所保存元素的类型. 所有超级接口: Collection<E>, Iterable< ...
- android 6.0+ 动态权限 拒绝不再询问后跳转设置应用详情页面
android 6.0+ 的权限 需要动态申请 这里的权限针对的是 敏感权限: SMS(短信) SEND_SMS RECEIVE_SMS READ_SMS RECEIVE_WAP_PUSH RECEI ...
- log4j2.xml日志文件设置文件路径
笔者最近的项目里使用了spring,spring通过web.xml配置监听器,在web启动时web.root系统变量,以供其他变量使用,例如 在属性文件里使用${web.root}以取得完整路径,项目 ...
- bootstrap table dataView展开行详情,p元素自动换行
// bootstrap table 行详情展开,p元素自动换行1 .tableClass .detail-view p{ white-space: normal; }
- Git命令参考手册
git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --glob ...
- FPGA做正则匹配和网络安全,究竟有多大的优势?
FPGA做正则匹配和网络安全,究竟有多大的优势? 西电通院专用集成电路课程学习 云导播 网络安全已经被提升为国家战略的高度,高校里面的新增的一级学科,去年9月份,中央网信办.教育部公布了“一流网络安全 ...