分析一个基于windows的客户端和服务器端程序
2018-03-29 02:19
190 查看
服务器端源码: #include <stdio.h> #include <Winsock2.h> #pragma comment (lib,"ws2_32.lib") int main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return 0; } if ( LOBYTE( wsaData.wVersion ) != 2 ||HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup( ); return 0; } SOCKET socketServer=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrServer; addrServer.sin_family=AF_INET; addrServer.sin_addr.S_un.S_addr=htonl(INADDR_ANY); addrServer.sin_port=htons(6000); bind(socketServer, (struct sockaddr *)&addrServer, sizeof(struct sockaddr)); listen(socketServer, 5); SOCKADDR_IN addrClient; int addrLen=sizeof(SOCKADDR_IN); char sendBuf[100]; char recvBuf[100]; int i=1; while(1) { printf("服务器端等待第%d个客户端连接请求...\n", i++); SOCKET newsocketServer=accept(socketServer,(struct sockaddr *)&addrClient, &addrLen);
if(newsocketServer!=INVALID_SOCKET) { printf("服务器端与客户端连接成功...\n"); } memset(sendBuf,0,100); sprintf(sendBuf,"Welcome you to come here"); send(newsocketServer, sendBuf, strlen(sendBuf)+1,0); memset(recvBuf,0,100); recv(newsocketServer,recvBuf,100,0); printf("服务器端收到信息:%s\n",recvBuf); closesocket(newsocketServer); } WSACleanup(); return 0; } 此文章来自于个人博客: 阿浪博客 http://blog.163.com/wenxianliang08@126/ 客户端源码: #include <stdio.h> #include <Winsock2.h> #pragma comment (lib,"ws2_32.lib") int main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return 0; } if ( LOBYTE( wsaData.wVersion ) != 2 ||HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup( ); return 0; } SOCKET socketClient=socket(AF_INET,SOCK_STREAM,0); //UDP使用SOCK_DGRAM SOCKADDR_IN addrServer; addrServer.sin_family=AF_INET; addrServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); addrServer.sin_port=htons(6000); char sendBuf[100]; char recvBuf[100]; printf("客户端向服务器端连接请求...\n"); int Isconnect=connect(socketClient, (struct sockaddr *)&addrServer, sizeof(struct sockaddr)); if(Isconnect!=0) { printf("客户端无法连接服务器端...\n"); return 0; } printf("客户端已成功连接服务器端...\n"); memset(recvBuf,0,100); recv(socketClient,recvBuf,100,0); printf("客户端收到信息:%s\n",recvBuf); memset(sendBuf,0,100); //清空sendBuf sprintf(sendBuf,"Hello , I am Mr Wen !"); send(socketClient, sendBuf, strlen(sendBuf)+1,0); closesocket(socketClient); WSACleanup(); return 0; }
UDP模型见下:https://blog.csdn.net/tianhaobing/article/details/69679693?locationNum=12&fps=1C++操作MySQL数据库: https://www.cnblogs.com/huang6mi/p/7233476.html https://www.cnblogs.com/xiao-cheng/archive/2011/10/03/2198382.html http://blog.chinaunix.net/uid-24862988-id-3833978.html https://zhidao.baidu.com/question/81951651.html
相关文章推荐
- 基于TCP网络通信的自动升级程序源码分析-客户端请求服务器上的升级信息
- 基于visual c++之windows核心编程代码分析 保持程序单实例运行
- 基于visual c++之windows核心编程代码分析(65)实现程序自我复制
- 基于Windows的迭代回声服务器端/客户端(基于TCP的服务器端/客户端)
- 一个在windows和基于SWT的java程序间拖拽的例子
- 一个简单的AJAX实现,基于C#的ASP.Net,包括服务器端的程序代码
- 基于TCP协议的客户端与服务器端程序
- 基于mykernel的一个简单的时间片轮转多道程序内核代码分析
- {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
- 编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序;
- 一个简单的socket客户端发送消息到服务器端程序
- 基于mina实现一个简单数据采集中间件的多客户端在线测试程序
- 基于Windows的迭代回声服务器端/客户端(基于UDP的服务器端/客户端)
- 发现了Windows自带的一个很有用的程序分析工具
- 基于Linux搭建一个类似Qik手机录像直播平台(服务器端:feng streaming server + web server,客户端:Android手机应用)
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- VS2008创建一个Windows窗体程序并深入分析
- 基于visual c++之windows核心编程代码分析(44)监测任意程序函数起始地址
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(十三):基于SharpMap的Windows程序界面(C/S架构)
- 基于TCP网络通信的自动升级程序源码分析-客户端接收文件