孙鑫网络编程code
生活随笔
收集整理的这篇文章主要介绍了
孙鑫网络编程code
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
服务器端
/*基于TCP面向连接的 服务器*/ #include <iostream> #include <WinSock2.h> #include <stdlib.h> #include <Ws2tcpip.h> #pragma comment(lib,"Ws2_32.lib") //使用动态链接库用到 using namespace std; #define _WINSOCK_DEPRECATED_NO_WARNINGS void main() {//加载套接字 WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1, 1);err = WSAStartup(wVersionRequested, &wsaData);if (err != 0){return;}if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1){WSACleanup(); //关闭套接字return;}//创建用于监听的套接字 SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0); //0自动选择协议SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);//绑定套接字 bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//将套接字设置为监听模式 listen(sockSrv, 5);SOCKADDR_IN addrClient; //调用accept的时候先定义一个地址结构体的变量,用来接收客户端的地址信息int len = sizeof(SOCKADDR);while (1) //服务器应该永远等待为客户端服务{//等待客户的请求到来 SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &len);char sendBuf[100]; ////char sendBuf[20] = {'\0'};//inet_ntop(AF_INET,(void*)&addr2.sin_addr,sendBuf,16);sprintf_s(sendBuf, 100, "Welcome %s to www.sunxin.org", inet_ntop(AF_INET,&addrClient.sin_addr,sendBuf,16));//调用sprintf将一个数据格式化到buffer当中 //取地址//发送数据 send(sockConn, sendBuf, strlen(sendBuf) + 1, 0);char recvBuf[100]; //用来接收的字符数组//接受数据 recv(sockConn, recvBuf, 100, 0);//打印接受的数据 printf("%s\n", recvBuf);//关闭套接字 closesocket(sockConn);} }客户端 /*基于TCP面向连接的 客户端*/ #include <iostream> #include <WinSock2.h> #include <stdlib.h> #include <Ws2tcpip.h> #pragma comment(lib,"Ws2_32.lib") //使用动态链接库用到 using namespace std; #define _WINSOCK_DEPRECATED_NO_WARNINGS void main() {//加载套接字 WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1, 1);err = WSAStartup(wVersionRequested, &wsaData);if (err != 0){return;}if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1){WSACleanup(); //关闭套接字return;}SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);//创建套接字SOCKADDR_IN addrSrv;struct in_addr s; // IPv4地址结构体inet_pton(AF_INET, "127.0.0.1", (void*)&addrSrv.sin_addr.S_un.S_addr);//addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));char recvBuf[100];recv(sockClient, recvBuf, 100, 0);printf("%s\n", recvBuf);send(sockClient, "This is zhangsan", strlen("This is zhangsan")+1,0);closesocket(sockClient);WSACleanup();//终止对套接字库的使用}
总结
以上是生活随笔为你收集整理的孙鑫网络编程code的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: matlab两轮自平衡小车,基于MATL
- 下一篇: 【STM32F429的DSP教程】第47