C# new socket时报“应用程序没有调用 WSAStartup,或者 WSAStartup 失败。”

鱼dotNet 2018-05-24 04:13:23
如题,用socket进行tcp通信,在new的时候突然报“应用程序没有调用 WSAStartup,或者 WSAStartup 失败。”,之前在别的项目中也是这样写的,都没有报错,查看网上的信息,说C++调用socket之前需要初始化WSAStartup,但是C#不需要,很奇怪,请教各位大神。

代码如下

Socket socket;
int Port = -1;
public TcpServer(int port)
{
Port = port;
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//就是这行就报错了
}

...全文
1639 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liulilittle 2018-06-03
  • 打赏
  • 举报
回复
这有可能是dotNET Framework出现了BUG 但造成这类型的BUG一般有几类 正常的情况下当你使用Socket类,必定会触发静态构造函数进行初始化, 但它可能会初始化失败,这是可能是由于系统内部安装了一些千奇百怪的LSP 造成的,也有可能是某些被loadlibrary到进程dll模块空间的DLL造成的,它们 执行了WSACleanup函数,但这种可能性一般比较小。 至于dotNET framework中的托管类库被感染这种事情 也不是没可能 手法上 不难。 所以建议你最好杀下毒,然后把dotNET与系统修复一下。同时用命令行 netsh winsock reset 重置下系统的winsocket的lsp方面的设置。 然后你再尝试看看
鱼dotNet 2018-05-26
  • 打赏
  • 举报
回复
引用 2 楼 kobehahaha 的回复:
https://blog.csdn.net/cherryhu/article/details/19486139
是C#,不是C++,原理应该不一样的
鱼dotNet 2018-05-24
  • 打赏
  • 举报
回复

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧