MFC 建立socket连接服务器网络编程

  • Post author:
  • Post category:其他


MFC不像控制台在MAIN函数里写代码,先添加控件,控件添加事件函数,然后再事件函数里写代码,如果服务器未开启,就去连接,会卡住。测试成功与否可以用MessageBox(_T(“xxx”));

//建立连接
	char sendBuf[512];
	CString sendStr;	
	WORD wVersion;
	WSADATA wsaData;
	int err; 
	wVersion = MAKEWORD(1, 1);
	err = WSAStartup(wVersion, &wsaData);
	if (err != 0) { return ; }
	if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) {
		WSACleanup(); return;
	}
	// 创建tcp套接字 
	SOCKET sockCli = socket(AF_INET, SOCK_STREAM, 0);
	SOCKADDR_IN addrSrv;
	addrSrv.sin_addr.S_un.S_addr = inet_addr("192.168.0.106");//服务器地址127.0.0.1是本机
	addrSrv.sin_family = AF_INET;
	addrSrv.sin_port = htons(6000);//端口
	//向服务器发起连接请求 
	connect(sockCli, (SOCKADDR*)& addrSrv, sizeof(SOCKADDR));
// 发送数据 
		sendStr = m_machineCode;
		 char *buff;          
         buff=sendStr.GetBuffer(sendStr.GetLength()); 
         sendStr.ReleaseBuffer(); 
		//sprintf_s(sendBuf, sizeof(sendStr), (const char*)&sendStr);//字符串转字符数组
		send(sockCli, buff, strlen(sendStr)+1, 0);//发送
 接收数据 
		char recvBuf[24]; //time_t start; time(&start);
		recv(sockCli, recvBuf, sizeof(recvBuf), 0);
// 关闭套接字 
		closesocket(sockCli);
		WSACleanup();



版权声明:本文为weixin_37520565原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。