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)客户端 ...
随机推荐
- shell的 ls命令
Linux下shell 的 ls 命令 ls -d 显示当前目录的上层目录,不显示子目录 ls -a 显示当前目录下的所有子目录,包括隐藏的文件 ls -l 显示当前目录下所有文件的所有信息(除隐藏文 ...
- (4)Linux常用基本操作
1.ping和traceroute 指定源IP ping:ping -I 源 目的 #I为大写的i 带源地址路由tracert:traceroute -d <目标地址> -s < ...
- WPF中的数据绑定(初级)
关于WPF中的数据绑定,初步探讨 数据绑定属于WPF中比较核心的范畴,以下是对WPF中数据绑定的一个初步探讨.个人感觉还是带有问题性质的叙述比较高效,也比较容易懂 第一,什么是数据绑定? 假定有这么一 ...
- 过滤器(Filter)与拦截器(Interceptor )区别
目录 过滤器(Filter) 拦截器(Interceptor) 拦截器(Interceptor)和过滤器(Filter)的区别 拦截器(Interceptor)和过滤器(Filter)的执行顺序 拦截 ...
- Linux screenshot
一.简介 linux下的三个截图软件
- H5基础
<html> <head lang="en"> <meta charset="utf_8"> ...
- Callable Future接口的设计原理
我们都知道Callable接口作为任务给线程池来执行,可以通过Future对象来获取返回值,他们背后的实现原理是什么?通过总结背后的实现原理有助于我们深入的理解相关技术,做到触类旁通和举一反三. 文章 ...
- c#简单的数据库查询与绑定DataGridView。
1配置文件 (两种写法) <connectionStrings> <add name="connStr" connectionString="se ...
- SpringCloud(一)Eureka注册中心
Eureka简介 Eureka作为注册中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等 Eureka注册中心实例 Eureka Server 1.pom文件配置SpringBoot.Sp ...
- 【java】:多线程面试题
经常面试的时候,让写各种乱七八糟的多线程面试题,收集了很多,有些还是挺好玩的. 1.编写程序实现,子线程循环10次,接着主线程循环20次,接着再子线程循环10次,主线程循环20次,如此反复,循环50次 ...