欢迎来到天天文库
浏览记录
ID:57751080
大小:42.00 KB
页数:6页
时间:2020-09-02
《基于C++的socket通信实例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、刚刚学windows编程,所以想写学习笔记,这是一个简单的Socket程序例子,开发环境是vc6:首先是TCPserver端:[cpp] viewplaincopy1.#include "stdafx.h" 2.#include 3.#include 4. 5.#pragma comment(lib,"ws2_32.lib") 6. 7.int main(int argc, char* argv[]) 8.{ 9. //初始化WSA 10. WOR
2、D sockVersion = MAKEWORD(2,2); 11. WSADATA wsaData; 12. if(WSAStartup(sockVersion, &wsaData)!=0) 13. { 14. return 0; 15. } 16. 17. //创建套接字 18. SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 19. if(slisten == INVALI
3、D_SOCKET) 20. { 21. printf("socket error !"); 22. return 0; 23. } 24. 25. //绑定IP和端口 26. sockaddr_in sin; 27. sin.sin_family = AF_INET; 28. sin.sin_port = htons(8888); 29. sin.sin_addr.S_un.S_addr = INADDR_ANY; 30.
4、if(bind(slisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR) 31. { 32. printf("bind error !"); 33. } 34. 1. //开始监听 2. if(listen(slisten, 5) == SOCKET_ERROR) 3. { 4. printf("listen error !"); 5. return 0; 6. } 7
5、. 8. //循环接收数据 9. SOCKET sClient; 10. sockaddr_in remoteAddr; 11. int nAddrlen = sizeof(remoteAddr); 12. char revData[255]; 13. while (true) 14. { 15. printf("等待连接..."); 16. sClient = accept(slisten, (SOCKADDR *)&remot
6、eAddr, &nAddrlen); 17. if(sClient == INVALID_SOCKET) 18. { 19. printf("accept error !"); 20. continue; 21. } 22. printf("接受到一个连接:%s r", inet_ntoa(remoteAddr.sin_addr)); 23. 24. //接收数据 25.
7、 int ret = recv(sClient, revData, 255, 0); 26. if(ret > 0) 27. { 28. revData[ret] = 0x00; 29. printf(revData); 30. } 31. 32. //发送数据 33. char * sendData = "你好,TCP客户端!"; 34. sen
8、d(sClient, sendData, strlen(sendData), 0); 35. closesocket(sClient); 36. } 37. 38. closesocket(slisten); 39. WSACleanup(); 40.
此文档下载收益归作者所有