c# - WinError: 10054 (0x2746) 现有连接被远程主机强行关闭。TCP 服务器
问题描述
我有 C# 中的客户端从 Unity 运行,就是这样
byte[] buffer = { 1 };
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Connect(IP, PORT);
System.Int32 Result = s.Send(buffer);
Debug.Log(Result);
并且服务器端是用C编写的,它真的很长所以这里是我得到错误的地方
for(char i = 0; i < MAX_PLAYERS; ++i)
{
if(ClientSockets[i] == INVALID_SOCKET) break;
Result = recv(ClientSockets[i], Message, sizeof(Message), 0);
if (Result == SOCKET_ERROR)
{
unsigned long LastError = GetLastError();
if (LastError != 10035)
{
Error("recv failed.\n");
}
}
ioctlsocket(ClientSocket, FIONBIO, &iMode)
在将它们放入 ClientSockets 数组之前,我已经使套接字的非阻塞。
解决方案
解决它。我的问题是客户端的套接字是在函数内部创建的,所以在函数执行完成后它就消失了。
推荐阅读
- python - 使用 python 解析从 Javascript 呈现的网页中抓取的数据
- javascript - 如何通过 OAuth.io 实现“使用 Twitter 登录”?
- java - 不支持的类文件主要版本 58
- c# - 如何解决返回从协议构建的抽象类的 iOS 绑定解决方案接口属性
- tensorflow - 如何修改 ImageDataGenerator 以处理 csv 数据
- python - 使用子进程模块运行linux命令
- python - 提交按钮在使用crispy的django表单中不起作用
- node.js - 使用 Instagram Graph API 拉取创作者/公众账号的信息
- powershell - 将 .csv 行保存在不同的文件中
- html - 如何对字符串类型的数字进行排序?