C++ Socket TCP "Hello World!"
2009-09-15 21:39
459 查看
这是C++ SOCKET网络程序中的C/S结构之TCP "Hello World !",共两个控制台工程:
程序运行效果:
源代码下载地址:
http://download.csdn.net/source/1667113
http://www.rayfile.com/files/79dbe03a-a1fe-11de-83dd-0014221b798a/
////////////////////////////////////////////////////////////////////////// // TCPServer.cpp #include <stdio.h> #include <WINSOCK2.H> #pragma comment(lib,"WS2_32.lib") #define BUF_SIZE 64 // 缓冲区大小 int main(void) { WSADATA wsd; // WSADATA变量 SOCKET sServer; // 服务器套接字 SOCKET sClient; // 客户端套接字 int retVal; // 返回值 char buf[BUF_SIZE]; // 接受数据 // 初始化套接字动态库 ZeroMemory(buf,BUF_SIZE); if(WSAStartup(MAKEWORD(2,2),&wsd) != 0) { printf("WSAStartup failed !/n"); return 1; } // 创建套接字 sServer = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(INVALID_SOCKET == sServer) { printf("socket failed !/n"); WSACleanup(); return -1; } // 服务器套接字地址 SOCKADDR_IN addrServ; addrServ.sin_family = AF_INET; addrServ.sin_port = htons(4999); addrServ.sin_addr.S_un.S_addr = htonl(INADDR_ANY); // 绑定套接字 retVal = bind(sServer,(const struct sockaddr*)&addrServ,sizeof(SOCKADDR_IN)); if(SOCKET_ERROR == retVal) { printf("bind failed !/n"); closesocket(sServer); WSACleanup(); return -1; } // 监听套接字 retVal = listen(sServer,1); if(SOCKET_ERROR == retVal) { printf("listen failed !/n"); closesocket(sServer); WSACleanup(); return -1; } // 接受客户请求 sockaddr_in addrClient; int addrClientlen = sizeof(addrClient); sClient = accept(sServer,(sockaddr FAR*)&addrClient,&addrClientlen); if(INVALID_SOCKET == sClient) { printf("accept failed !/n"); closesocket(sServer); WSACleanup(); return -1; } // 接受客户数据 retVal = recv(sClient,buf,BUFSIZ,0); if(SOCKET_ERROR == retVal) { printf("recv failed !/n"); closesocket(sServer); closesocket(sClient); WSACleanup(); return -1; } // 退出程序 printf("Recv From Client:%s/n",buf); retVal = send(sClient,"Hello World !",strlen("Hello World !"),0); if(SOCKET_ERROR == retVal) { printf("send failed !/n"); closesocket(sServer); closesocket(sClient); WSACleanup(); return -1; } // 退出程序 closesocket(sServer); closesocket(sClient); WSACleanup(); return 0; }
////////////////////////////////////////////////////////////////////////// // TCPClient.cpp #include <stdio.h> #include <Winsock2.H> #pragma comment(lib,"WS2_32.lib") #define BUF_SIZE 64 // 缓冲区大小 int main(void) { WSADATA wsd; // 初始化数据库 SOCKET sHost; // 服务器套接字 SOCKADDR_IN servAddr; // 服务器地址 char buf[BUF_SIZE]; // 接受数据缓冲区 int retVal; // 返回值 if(WSAStartup(MAKEWORD(2,2),&wsd) != 0) { printf("WSAStartup failed !/n"); return 1; } // 创建套接字 sHost = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(INVALID_SOCKET == sHost) { printf("socket failed !/n"); WSACleanup(); return -1; } // 设置服务器地址 servAddr.sin_family = AF_INET; servAddr.sin_addr.S_un.S_addr = inet_addr("192.168.1.254"); servAddr.sin_port = htons(4999); int sServerAddlen = sizeof(servAddr); // 连接服务器 retVal = connect(sHost,(LPSOCKADDR)&servAddr,sizeof(servAddr)); if(SOCKET_ERROR == retVal) { printf("connect failed !/n"); closesocket(sHost); WSACleanup(); } // 向服务器发送数据 ZeroMemory(buf,BUF_SIZE); strcpy(buf,"Hello World !"); retVal = send(sHost,buf,strlen(buf),0); if(SOCKET_ERROR == retVal) { printf("send failed !/n"); closesocket(sHost); WSACleanup(); return -1; } // 向服务器接受数据 retVal = recv(sHost,buf,sizeof(buf)+1,0); printf("Recv From Server: %s/n",buf); // 退出程序 closesocket(sHost); WSACleanup(); return 0; }
程序运行效果:
源代码下载地址:
http://download.csdn.net/source/1667113
http://www.rayfile.com/files/79dbe03a-a1fe-11de-83dd-0014221b798a/
相关文章推荐
- C++ "hello world‘实例
- windows TCP socket在C++下的编程入门 7
- C#的Socket程序"TCP"
- 用Visual Studio2010 编译 C++文件"hello world”
- 跨平台C++ 功能全面的Socket类库,支持TCP,UDP,限速等等
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- 跨平台C++ 功能全面的Socket类库,支持TCP,UDP,限速等等_陈华_新浪博客
- C++ TCP 和 UDP 在socket编程中的区别
- linux下C/C++网络编程基本:socket实现tcp和udp的例子
- C++ 简单的 Tcp 实现[socket] 服务器端与客户端通信
- windows TCP socket在C++下的编程入门 5
- 基于TCP和UDP的socket通信(C++实现)
- C++ Socket TCP "Hello World!"
- C++ 简单的 Tcp 实现[socket] 客户端与客户端通信
- [Socket]基于C++的纯面向对象的通用高性能大并发TCP-SERVER/CLIENT开发
- c++ poco StreamSocket tcpclient测试用例
- C++基于socket的多线程的群聊程序(TCP)
- windows TCP socket在C++下的编程入门 2
- [C++] Windows下的socket编程(这是一个简单的TCP/IP例子)
- c/c++ TCP_Socket基础编程