`
blogfeifei
  • 浏览: 1198314 次
文章分类
社区版块
存档分类
最新评论

最简单client和server通信程序

 
阅读更多

开两个vc或者建两个工程,先运行server再运行client

server端:

#include <WINSOCK2.H>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
//创建套接字
WORD myVersionRequest;
WSADATA wsaData;
myVersionRequest=MAKEWORD(1,1);
int err;
err=WSAStartup(myVersionRequest,&wsaData);
if (!err)
{
printf("已打开套接字/n");

}
else
{
//进一步绑定套接字
printf("嵌套字未打开!");
return;
}
SOCKET serSocket=socket(AF_INET,SOCK_STREAM,0);//创建了可识别套接字
//需要绑定的参数
SOCKADDR_IN addr;
addr.sin_family=AF_INET;
addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址
addr.sin_port=htons(6000);//绑定端口

bind(serSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR));//绑定完成
listen(serSocket,5);//其中第二个参数代表能够接收的最多的连接数

//////////////////////////////////////////////////////////////////////////
//开始进行监听
//////////////////////////////////////////////////////////////////////////
SOCKADDR_IN clientsocket;
int len=sizeof(SOCKADDR);
while (1)
{
SOCKET serConn=accept(serSocket,(SOCKADDR*)&clientsocket,&len);//如果这里不是accept而是conection的话。。就会不断的监听
char sendBuf[100];

sprintf(sendBuf,"welcome %s to bejing",inet_ntoa(clientsocket.sin_addr));//找对对应的IP并且将这行字打印到那里
send(serConn,sendBuf,strlen(sendBuf)+1,0);
char receiveBuf[100];//接收
recv(serConn,receiveBuf,strlen(receiveBuf)+1,0);
printf("%s/n",receiveBuf);
closesocket(serConn);//关闭
WSACleanup();//释放资源的操作
}
}

client端:


#include <WINSOCK2.H>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")

void main()
{
int err;
WORD versionRequired;
WSADATA wsaData;
versionRequired=MAKEWORD(1,1);
err=WSAStartup(versionRequired,&wsaData);//协议库的版本信息

if (!err)
{
printf("客户端嵌套字已经打开!/n");
}
else
{
printf("客户端的嵌套字打开失败!/n");
return;//结束
}
SOCKET clientSocket=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN clientsock_in;
clientsock_in.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
clientsock_in.sin_family=AF_INET;
clientsock_in.sin_port=htons(6000);
//bind(clientSocket,(SOCKADDR*)&clientsock_in,strlen(SOCKADDR));//注意第三个参数
//listen(clientSocket,5);
connect(clientSocket,(SOCKADDR*)&clientsock_in,sizeof(SOCKADDR));//开始连接

char receiveBuf[100];
recv(clientSocket,receiveBuf,101,0);
printf("%s/n",receiveBuf);

send(clientSocket,"hello,this is client",strlen("hello,this is client")+1,0);
closesocket(clientSocket);
WSACleanup();
}

分享到:
评论

相关推荐

    一个简单的ZeroMQ通信程序Demo

    一个最基本的client,server通信。直接编译可用

    最简单的SDK服务端与客户端程序

    这是最简单的服务器了 使用的时候不要添服务器地址,也不要发送大于80字节的数据 因为简单,所以使用单线程处理

    visual C++_Turbo C串口通信编程实践

    8.4.1 Freescal(Motorola)单片机软件集成开发环境和程序下载 8.4.2 Freescal(Motorola) 8位单片机程序烧写专用软件:PROG08SZ-FLASH PROGRAMMER 8.4.3 Freescal(Motorola)单片机串口通信程序实例 第9章 串口与...

    一个简单的PHP封装的socket的client端的类

    可以完成简单的和server端的通信,包括接收和发送数据 可以根据需要完善其来对要发送的数据进行过滤 其他功能还有: 返回所有错误信息 返回最后一次错误信息 返回获取最后一次发送的消息 等等,还可以根据需要将其...

    Python实现简单的HttpServer服务器示例

    我们常说B/S,C/S架构,所谓的B/S指browser/server,C/S指Client/Server,B/S架构其实就是应用于浏览器的程序,只要最后在浏览器上展现的都是 B/S架构,而非在浏览器上展现的都是C/S架构,如常见的英雄联盟游戏。...

    simple-socket:WEB实时通信的简单实现,根据WebSocket和Event-Source以及AJAX轮询实现降级兼容, 分为clientserver两份代码,

    个人知乎专栏文章包含对代码设计的详细注解simple-socketsimple-socket是我写的一个Web实时通信工具简单实现,在参考了相关源码和资料的基础上,实现了前后端实时互通的基本功能,选用了WebSocket -&gt;server-sent-...

    mycos:用于本地和分布式通信的简单消息传递库

    ###simple client-server example 也许简单的例子是描述 mycos 最有效的方式。 您可以使用不可变的 SocketBuilder 轻松创建新的套接字(例如客户端套接字)。 以下几行构建了一个连接到 localhost:8000 服务器的新...

    文件传输协议的简单设计与实现

    用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),该程序应能实现下述命令功能: get:取远方的一个文件 put:传给远方一个文件 pwd:显示远主当前目录 dir:列出远方当前目录 cd...

    关于socket的基于TCP协议的异步通信系统--TongXing.DLL

    3:在startClient和startServer引擎开启之前大家可以设置好一切属性和加载事件;如一次最大发送量,默认是1KB.最多连接多少客户端数量.断开是否重连等等 4:我这里把二种发送模式分开了,一种是发送文本的,一种是发送...

    JSP程序设计实例教程(第2版)-电子课件第1章-Java-Web编程基础.pptx

    C/S结构的出现是为了解决费用和性能的矛盾,最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。 JSP程序设计实例教程(第2版)-电子课件第1章-Java...

    圣天诺加密锁虚拟程序

    圣天狗硬件锁的网络版本可以保护 client-server型式的应用程序,提供服务器监测功能来追踪网络上的授权使用状况。圣天狗可以让网络管理员将网络上未处于使用状态的授权取消或将转移给其它使用者。管理员可以有效的...

    Netty高性能网络应用框架.rar

    Client和Server的每建立一次连接,都会创建一个线程,在Client等待Server响应的期间,会处于阻塞状态。 NIO :Non-Blocking IO,即同步非阻塞式IO。NIO是基于Reactor模式,面向缓冲区并结合通道的IO模型。客户端发送...

    客户机服务器体系结构.pptx

    最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户...

    Android Debug Bridge 下载 download

    2、 server,作为后台进程同样运行于开发机器,server负责管理client和运行于目标机器或者emulator的守护进程之间的通信,就像一座桥一样。 3、 daemon,运行于目标机或者emulator的守护进程。 上面这段话是SDK...

    最简单的VC++ Sock测试程序

    然后运行client,连接就可以看到提示信息,掌握基本的客户端与服务器的编写对我们以后从事VC++网络编程有着重要意义,目前一般的大软件都是比较综合的,而且不少都是紧扣网络,有必要看看这个简单的程序。

    创新设计!基于ESP8266的LiFi局域网通信系统(源码+设计说明)-电路方案

    LiFi就是利用可见光实现无线通信和上网,通过LED灯发出人眼不可见的快速闪烁的光线来实现信息(0和1的二进制数据)的传输。相对于传统的WiFi,LiFi有如下优点(下面都是我自己总结的,请大家补充指正): 1、可见光...

    FFRPC应用 Client/Server使用及原理解析

    摘要: Ffrpc 进行了重构,精简了代码,代码更加清晰简洁,几乎完美的达到了我的预想...Ffrpc实现了一个最基本的二进制序列化方法,基本的原理就是如果是固定长度那么就直接拷贝,如果是字符串,就先拷贝长度再拷贝内

    android socket和.net

    简单描述安卓Client和.net服务器怎么通信 通过在Client发送字符串到Server上,Server最后返回字符串的个数的实例,来进行演示

    MakeTcpHole

    此时,Client A与Client B都可以与Server S通信了。如果Client A此时想直接发送信息给Client B,那么他可以从Server S那儿获得B的公网地址187.34.1.56:40000,是不是Client A向这个地址发送信息Client B就能收到了...

    易语言-Hp-Socket For E 5.4.2 高性能TCP/UDP通信组件 源码+模块+例程

    HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。 为了让使用者能方便快速地学习和使用 HP-Socket ,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:...

Global site tag (gtag.js) - Google Analytics