Socket服务器和客户端C.doc_第1页
Socket服务器和客户端C.doc_第2页
Socket服务器和客户端C.doc_第3页
Socket服务器和客户端C.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

客户端:#include using namespace std;#define SERVPORT 7861 /*服务器监听端口号*/#define DEST_IP 192.168.1.35#define MAXDATASIZE 100;int _tmain(int argc, _TCHAR* argv)int sockfd, recvbytes; char bufMAXDATASIZE; struct hostent *host; struct sockaddr_in serv_addr; struct sockaddr_in dest_addr; /* 目的地址*/ WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(2,0);err = WSAStartup(wVersionRequested,&wsaData);if (0 != err)couth_addr);*/serv_addr.sin_addr.s_addr = inet_addr(DEST_IP); memset( &(serv_addr.sin_zero),0,8);if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(struct sockaddr) = -1) perror(connect出错!);/exit(1);char szMsg = hao;int nlen = sizeof(serv_addr);int uIndex = 0;while (1)Sleep(1000);if (send(sockfd, Hello, are connected!n, 23, 0) = -1)coutWSAGetLastError()endl;elsecoutuIndex+:an TCP package is sendedendl;if (recvbytes=recv(sockfd, buf, MAXDATASIZE, 0) !=-1) bufrecvbytes = 0; printf( Received: %s,buf);closesocket(sockfd); return 0;服务器/ MsgTcp05.cpp : Defines the entry point for the console application./#include stdafx.h#include #include #include #include #include #include #define SERVPORT 7861 /*服务器监听端口号*/#define MAXDATASIZE 100#define BACKLOG 10using namespace std;std:vector client_fd;char bufMAXDATASIZE; DWORD WINAPI qtPingServerThreadFunc(LPVOID lpThreadParameter);int _tmain(int argc, _TCHAR* argv)SOCKET sockfd; /*sock_fd:监听socket;client_fd:数据传输socket */ struct sockaddr_in my_addr; /* 本机地址信息*/ struct sockaddr_in remote_addr; /* 客户端地址信息*/ char szMsg=hello;WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(2,0);err = WSAStartup(wVersionRequested,&wsaData);if (0 != err)coutSocket failed;return 0;if (LOBYTE(wsaData.wVersion)!= 2 | HIBYTE(wsaData.wVersion) != 0)WSACleanup();return 0;sockfd = socket(AF_INET,SOCK_STREAM,0);if (INVALID_SOCKET = sockfd)coutSoket Create Failed;return 0;/*sockfd = socket(AF_INET, SOCK_STREAM, 0);*/if (sockfd = -1) perror( socket创建出错!); exit(1); my_addr.sin_family=AF_INET; my_addr.sin_port=htons(SERVPORT); my_addr.sin_addr.s_addr = INADDR_ANY; memset( &(my_addr.sin_zero),0,8);if (bind(sockfd, (struct sockaddr *) &my_addr, sizeof(struct sockaddr) = -1) perror( bind出错!);/exit(1); int n = 0;while(1) if (listen(sockfd, BACKLOG) != -1) int sin_size = sizeof(struct sockaddr_in); SOCKET nSocket = accept(sockfd, (struct sockaddr *) &remote_addr, &sin_size);std:vector:iterator itr_end = client_fd.end();std:vector:iterator itr = std:find(client_fd.begin(),itr_end,nSocket);if (itr = itr_end)client_fd.push_back(nSocket);printf( received a connection from %sn, inet_ntoa(remote_addr.sin_addr);DWORD dwPingThreadID;HANDLE hPingHandle = CreateThread(0, 0, qtPingServerThreadFunc, 0, 0, &dwPingThreadID); for (int n = 0;n client_fd.size(); n+)closesocket(client_fdn); client_fd.clear(); DWORD WINAPI qtPingServerThreadFunc(LPVOID lpThreadParameter)while (1)for (int n = 0;n client_fd.size(); n+)int recvbytes;if (rec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论