前言
该代码是拷贝网上的案例代码,但是笔者在运行时发现,在accept接收一次连接之后,无法堵塞,不断进入死循环,且接收不到任何客户端发送的socket连接。
后查阅资料,在accept()后面加入以下代码发现错误信息:10093
printf("%d",WSAGetLastError());
10093的错误,应用程序没有调用 WSAStartup,或者 WSAStartup 失败。
问题描述:Failed to create UDP socket:10093!Close and restart app.
解决方案:在accept前使用WSAStartup中初始化网络即可:
WSADATA wsaData;
int nRet;
if((nRet = WSAStartup(MAKEWORD(2,2),&wsaData)) != 0){
printf("WSAStartup failed\n");
exit(0);
}
实例代码
服务器端
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
//创建套接字,socket前的一些检查工作,包括服务的启动
WORD myVersionRequest;
WSADATA wsaData;
myVersionRequest=MAKEWORD(1,1);
in