Tag: 服务器

服务器上的GetThumbnailImage中的C#内存不足exception

我正在运行以下代码,以便在用户向我们发送图像时创建缩略图: public int AddThumbnail(byte[] originalImage, File parentFile) { File tnFile = null; try { System.Drawing.Image image; using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(originalImage)) { image = System.Drawing.Image.FromStream(memoryStream); } Log.Write(“Original image width of [” + image.Width.ToString() + “] and height of [” + image.Height.ToString() + “]”); //dimensions need to be changeable double factor = (double)m_thumbnailWidth / (double)image.Width; […]

尝试使用ServerManager获取应用程序池时出现COMException

当我尝试使用以下代码从远程服务器获取IIS应用程序池列表时 List appPools; using (ServerManager serverManager = ServerManager.OpenRemote(“XXX”)) { appPools = serverManager.ApplicationPools.ToList(); } 我得到一个例外: System.Runtime.InteropServices.COMException (0x800706BA): Retrieving the COM class factory for remote component with CLSID {2B72133B-3F5B-4602-8952-803546CE3344} from machine XXX failed due to the following error: 800706ba. 可能导致这种情况的任何想法?

微软异步服务器套接字示例

我有一个关于这个问题的问题(“异步服务器套接字多个客户端”)。 要么微软改变了这个例子,因为Groos回答或者我真的没有得到它 – 在示例中它说: while (true) { // Set the event to nonsignaled state. allDone.Reset(); // Start an asynchronous socket to listen for connections. Console.WriteLine(“Waiting for a connection…”); listener.BeginAccept( new AsyncCallback(AcceptCallback), listener ); // Wait until a connection is made before continuing. allDone.WaitOne(); } 据我所知,在while(true)循环中连续调用BeginAccept()函数,只有在调用AcceptCallback()函数时才会被调用,因为首先发生的是allDone.Set()。 但格罗说 MSDN示例的问题在于它只允许连接单个客户端(listener.BeginAccept只调用一次)。 实际上我不明白为什么使用ManualResetEvent allDone …而且我认为listener.EndAccept(ar)方法无论如何都是阻塞的。 listener.BeginAccept()是否在仍然运行时第二次调用时抛出exception? 但是,如果是这样,为什么allDone.Set()在listener.EndAccept(ar)之前呢? 还有一个问题: 在收到EOF后,我可以在ReadCallback(IAsyncResult ar)函数中调用handler.BeginReceive(…)来等待来自同一客户端的更多数据吗? […]

如何为Unity3d设计我的在线游戏服务器?

最近,我一直在unity3d做多人游戏开发。 我非常清楚Unity的MasterServer如何在统一中工作。 但现在我想从头开始制作自己的游戏服务器。 我研究并了解我们可以使用Google云计算和应用引擎来制作我们自己的配对服务器和游戏主机服务器。 但我完全无能为力,我们如何开始编写服务器代码。 我们使用简单的http请求和json结果吗? 或者还有其他技术可以实时与FPS类型的游戏一起使用。 我不认为发送http请求并等待它的结果可以足够快,可以在FPS类型的游戏中工作,每秒我们发送超过100个数据。 起初我想到编写PHP脚本并将其托管到某个URL,然后向该URL发送请求并等待其响应。 但我发现如果我使用这个过程然后只是从服务器获得一个响应它将花费我至少0.5秒或更多。 在这种情况下,游戏中会有很多延迟。 我知道游戏服务器可以在某种tcp或udp网络上运行。 但我的问题是,我应该为服务器提供什么样的应用程序来接收这些数据并快速发送处理结果。

Unity中的REST(从网络服务器发送消息到统一)

有没有办法让一个简单的网络服务器向Unity发送消息? 目前,我们正在使用更新方法中的UnityWebRequest.Get()进行GET 。 这是代码: // Update is called once per frame void Update () { StartCoroutine(GetData()); } IEnumerator GetData() { UnityWebRequest uwr = UnityWebRequest.Get(url); yield return uwr.Send(); if (uwr.isError) { Debug.Log(uwr.error); }else { Debug.Log((float.Parse(uwr.downloadHandler.text) / 100)); fnumber = ((float.Parse(uwr.downloadHandler.text) / 100)); transform.position.Set(oldX, fnumber, oldZ); } } 但是,这会抛出此错误: 无法解决目的地主机问题 我发现这个错误报告,它说,它本来是固定的,但似乎并非如此。 那么,有没有办法让服务器向Unity发送消息? 谢谢

C#TCP服务器组合接收的数据

我正在研究一个粗略的TCP服务器/客户端。 它的工作方式如下:客户端向服务器发送消息>服务器将所有用户数据发送到每个客户端。 我有一个循环,因为我将在游戏中使用这种多人游戏数据传输。 但是,出于某种原因,我的服务器会将传入的数据组合成一个字符串,而不是逐行读取。 例如,对于用户数据,它应该读取类似john:0 | 0的内容,但它读起来像john:0 | 0john:0 | 0john:0 | 0john:0 | 0我尝试设置发送和接收延迟,但是如果我延迟超过100毫秒,它似乎只能起作用。 服务器 class Program { private static Socket _serverSocket; private static readonly List _clientSockets = new List(); private const int _BUFFER_SIZE = 2048; private const int _PORT = 100; private static readonly byte[] _buffer = new byte[_BUFFER_SIZE]; public static bool clientConnected […]

c#Environment.ProcessorCount并不总是返回完整数量的逻辑处理器,为什么?

在我的机器上,Windows 7 – Enterprise 1 x Intel Xeon E5-1660 0 @ 3.30Ghz(激活超线程的6核/ CPU),Environment.ProcessorCount返回12,这是准确的。 在具有2 x Intel Xeon E5-2697 v3 @ 2.60GHz的Windows Server 2012上(启动了超线程的14核/ CPU(我认为因为任务管理器显示:2个插槽,28个核心,56个逻辑处理器)),Environment.ProcessorCount返回因为2x14x2 = 56,我们认为这是错误的。 为什么在Windows Server 2012 c#方法Environment.ProcessorCount没有返回正确数量的逻辑处理器? 作为附加信息,环境变量如下:NUMBER_OF_PROCESSORS = 28 更新2015-05-26: 在我的另一个问题中有更多关于此相关错误的详细信息/原因: 无法在C#应用程序中为我的线程使用多个处理器组 。 主要是我认为C#只使用一个处理器组。 有什么问题,在我们的服务器上,有2个处理器组,尽管只有56个逻辑处理器。 但是这个惠普客户顾问解释了为什么我们的服务器BIOS配置导致错误的窗口。

使用.NET和Xamarin的服务器客户端应用程序

我在互联网上搜索了很多个小时但我发现任何与我的情况相符的东西。 我只是想用TCP或UDP实现一个服务器/客户端应用程序,其中我的Android App(Xamarin)充当服务器,我的.NET应用程序充当客户端。 由于我没有太多的应用程序开发经验和没有Xamarin的经验,我一直在寻找一个例子。 我发现的只有: http://www.codeproject.com/Articles/340714/Android-How-to-communicate-with-NET-application-vi 首先,这是相反的方式(服务器在.NET和客户端作为应用程序),另外它是用于Android Studio所以我很难将这些东西翻译成Xamarin而没有错误。 请有人帮忙,并举例说明如何实现我的问题? 谢谢!

来自影响另一个线程路径的一个线程的值

我有一个程序,它使用两个客户端线程和一个服务器。 在我的程序中有一点我想在一个线程中的值来影响另一个线程的路径。 更具体地说,我在服务器中有这个代码: class Handler { public void clientInteraction(Socket connection, bool isFirstThread, Barrier barrier) { string pAnswer = string.Empty; string endGameTrigger = string.Empty; //setup streamReaders and streamWriters while(true) //infinite game loop { //read in a question and send to both threads. pAnswer = sr.ReadLine(); Console.WriteLine(pAnswer); awardPoints(); writeToConsole(“Press ENTER to ask another question or enter 0 […]

C#multithreading聊天服务器,手柄断开连接

我正在寻找一种处理断开连接的方法,因为每次关闭客户端时,服务器都会停止工作。 我收到一条错误消息,它在此行中“无法读取超出流的末尾”: string message = reader.ReadString(); 此外,我需要一种方法来从客户端列表中删除断开连接的客户端。 这是我的代码:服务器 using System; using System.Threading; using System.Net.Sockets; using System.IO; using System.Net; using System.Collections.Generic; namespace Server { class Server { public static List clients = new List(); static void Main(string[] args) { IPAddress ip = IPAddress.Parse(“127.0.0.1”); TcpListener ServerSocket = new TcpListener(ip, 14000); ServerSocket.Start(); Console.WriteLine(“Server started.”); while (true) { TcpClient […]