MFC下AfxSocketInit()正确初始化套接字

初始化Socket,这是mfc封装的类调用之前必须进行套接字动态链接库的装载,但是如果你错过了向导中的选项,而是自己手动添加,如果不了解情况,导致程序运行失败。
//Socket功能初始化
 if (!AfxSocketInit())
 {
  AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  return FALSE
BOOL CMyApp::InitInstance()
{
。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。;
 }
正确的初始化应该是这样:
BOOL CMyApp::InitInstance()
{
//初始化必须放在开头
 if (!AfxSocketInit())
 {
  AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  return FALSE;
 }
 AfxEnableControlContainer();
。。。。。。。。。。。。。。。。。
}
然后在头文件 stdafx.h中加入 #include<afxsock.h>
                                          ////////////////////////////、MFC下Socket的端口扫描
 // TODO: Add your control notification handler code here
  CSocket* pSocket;
pSocket=new CSocket;
 if(!pSocket->Create())
 {
  delete pSocket;
  pSocket=NULL;
  return ;
 }
 //
 if(!pSocket->Connect("127.0.0.1",20))
 {
  delete pSocket;
  pSocket=NULL;
  return ;
 }
 else
 {
  MessageBox("主机端口80已经打开");
 }
 //
pSocket->Close();
 delete pSocket;
 return ;
}
时间: 2024-10-07 09:05:27

MFC下AfxSocketInit()正确初始化套接字的相关文章

python全栈脱产第37天------进程池与线程池、协程、gevent模块、单线程下实现并发的套接字通信

一.进程池与线程池 调用concurrent.futures下的ThreadPoolExecutor,ProcessPoolExecutor来实现 提交任务有两种方式:同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,在执行下一段代码,是串行的 异步调用:提交完一个任务之后,不在原地等待,直接运行下一段代码,任务是并发的 from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutorimp

套接字编程(VC_Win32)

简介(源于维基) Berkeley套接字(也作BSD套接字应用程序接口)刚开始是4.2BSD Unix操作系统(于1983发布)的一套应用程序接口.然而,由于AT&T的专利保护着UNIX,所以只有在1989年Berkeley大学才能自由地发布自己的操作系统和网络库.Berkeley套接字接口,一个应用程序接口(API),使用一个Internet套接字的概念,使主机间或者一台计算机上的进程间可以通讯. 它可以在很多不同的输入/输出设备和驱动之上运行,尽管这有赖于操作系统的具体实现. 接口实现用于T

《网络编程》基于 TCP 套接字编程的分析

本节围绕着基于 TCP 套接字编程实现的客户端和服务器进行分析,首先给出一个简单的客户端和服务器模式的基于 TCP 套接字的编程实现,然后针对实现过程中所出现的问题逐步解决.有关基于 TCP 套接字的编程过程可参考文章<基本 TCP 套接字编程>.该编程实现的功能如下: (1)客户端从标准输入读取文本,并发送给服务器: (2)服务器从网络输入读取该文本,并回射给客户端: (3)客户端从网络读取由服务器回射的文本,并通过标准输出回显到终端: 简单实现流图如下:注:画图过程通信双方是单独的箭头,只

基于消息的异步套接字

Windows套接字在两种模式下执行I/O操作,阻塞模式和非阻塞模式.在阻塞模式下,执行操作的函数会一直等待,不会立即返回,知道发送完数据或者接受完数据为止.这在一定条件下是对性能的浪费,例如recvfrom函数没有收到数据的时候吧就会一直等待下去. 为了提高系统的性能,Winsock提供了基于消息的异步socket.下面介绍主要的Socket异步通信函数. <1>int       WSASyncSelect(SOCKET s,HWND hwnd,unsigned int uMsg,long

windows和linux套接字中的select机制浅析

先来谈谈为什么会出现select函数,也就是select是解决什么问题的? 平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好. 这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设置成非阻塞的,这样不管套接字上有没有数据都会立刻返回,可以重复调用recv函数,这种方式叫做轮询(polling),但是这样效率很是问题,因为,大多数时间实际上是无数据可读的,花费时间不断反复执行

TCP/IP网络编程读书笔记-简单的套接字编程(1)

在linux和windows下都是通过套接字编程进行网络编程.不同的系统上通信有部分差别,现在刚开始学习,给自己学习的时候一个总结. 一,socket函数的套接字步骤 第一,linux网络编程中接受连接请求(服务器端)套接字的四个步骤: 1)调用socket函数创建套接字 2)调用bind函数分配IP地址和端口号 3)调用listen函数转为可接收请求状态 4)调用accept函数受理连接请求 第二,linux网络编程中请求连接(客户端)套接字的两个步骤: 1)调用socket函数创建套接字 2

原始套接字-自定义IP首部和TCP首部

1 /* ===================================================================================== 2 * 3 * Filename: raw.c 4 * Description: 使用原始套接字发送TCP协议,并外带自己的数据. 5 * 6 * ====================================================================================*

Linux 进程间通信(二)(网络IPC:套接字)

socket描述符 套接字是通信端点的抽象,创建一个套接字使用如下函数: #include <sys/socket.h> int socket(int domain, int type, int protocol); 返回值:若成功,返回套接字描述符:若出错,返回-1 说明: domain: 指定通信的特征,包括地址格式,以AF_开头的常数表示地址族(address family): 域 说明 AF_INET IPv4因特网域 AF_INET6 IPv6因特网域 AF_UNIX UNIX域 A

VC网络编程 Socket套接字编程

基于TCP的Socket编程 TCP服务器: #include<winsock2.h> //包含头文件 #include<stdio.h> #include<windows.h> #pragma comment(lib,"WS2_32.lib") //显式连接套接字库 int main() //主函数开始 { WSADATA data; //定义WSADATA结构体对象 WORD w=MAKEWORD(2,0); //定义版本号码 char szte