Tag: networking

接受多个tcp客户端的最佳方式?

我有一个客户端/服务器基础设施。 目前,他们使用TcpClient和TcpListener在所有客户端和服务器之间发送接收数据。 我目前所做的是当收到数据时(在它自己的线程上),它被放入一个队列中供另一个线程处理,以释放套接字,使其准备好并打开以接收新数据。 // Enter the listening loop. while (true) { Debug.WriteLine(“Waiting for a connection… “); // Perform a blocking call to accept requests. using (client = server.AcceptTcpClient()) { data = new List(); // Get a stream object for reading and writing using (NetworkStream stream = client.GetStream()) { // Loop to receive all the data […]

如何指定UdpPacket的源端口?

我想将UdpPacket发送到特定的远程主机(我已经知道公共IP和端口)。 我想使用C#的UdpClient类。 static int Main() { UdpClient client = new UdpClient(); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse(“1.2.3.4”), 9999); byte[] data = GetData(); client.Send(data, data.Length, remoteEP); } 发送数据包时,UdpClient会自动选择可用端口。 我想手动设置端口,从中发送数据包。 感谢您的帮助!

在TCP中接收数据

如果我在TCP中发送1000个字节,它是否保证接收器将获得整个1000字节“togther”? 或者他可能会先获得500个字节,之后他会收到其他字节? 编辑 :问题来自应用程序的观点。 如果1000个字节在到达应用程序之前重新组装到单个缓冲区中..那么我不在乎它是否在路上被分段。

WebClient非常慢

我有Webclient的问题。 这很慢。 从一个网站下载String需要大约3-5秒。 我没有任何网络问题。 这是我的Modifed WebClient。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace StatusChecker { class WebClientEx: WebClient { public CookieContainer CookieContainer { get; private set; } public WebClientEx() { CookieContainer = new CookieContainer(); ServicePointManager.Expect100Continue = false; Encoding = System.Text.Encoding.UTF8; WebRequest.DefaultWebProxy = null; Proxy = null; } public void ClearCookies() { […]

指定在.NET中用于解析主机名的DNS服务器

我想知道是否有办法强制System.Net.Dns类使用一组自定义DNS服务器来解析主机名,而不是使用与主网络连接相关联的服务器。 我怀疑这只能使用像DnDns( http://dndns.codeplex.com )这样的自定义库,但我希望这可以在.NET中完成。

C#使用托管Wifi API连接到Wifi网络

我想知道是否可以使用Managed Wifi API连接到wifi网络?

TDD和Mocking TcpClient

人们如何处理模拟TcpClient(或TcpClient之类的东西)? 我有一个接收TcpClient的服务。 我应该把它包装成更可模仿的东西吗? 我该怎么办呢?

如何检查远程IP和端口?

我必须检查远程IP和端口是否可用。如果它可用,它将移动到下一个表单。如果不可用,它应该进入初始状态。我试过使用这个 while (true) { IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties(); IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners(); ——- ——- ——- } 我正在显示示例coding.it正在检查本地IP和端口并转移到下一个form.it将检查本地端口和IP是否可用。如果端口和IP不可用它将进入初始阶段并且它工作正常。我必须检查远程端口和IP。

处理WinRT StreamSocket断开连接(服务器端和客户端端)

我有一个我正在为Windows 8 / WinRT编写的应用程序,它使用StreamSocket API与服务器建立流连接。 也就是说,服务器将数据流式传输到客户端,有时使用元标记,并且可以随时断开连接。 我遇到的问题是我不知道如何检测服务器何时断开连接。 StreamSocket类(输入或输出流)或与连接状态有关的DataReader / DataWriter类似乎没有任何事件或属性。 最重要的是,在服务器端与客户端断开连接后,DataReader方法ReadAsync不会失败。 相反,操作成功,据我所知,它填充到缓冲区的数据只是服务器发送给它的最后一件事(即它没有清除它的内部缓冲区,即使我可以看到它已经“消耗”了每次调用ReadByte时缓冲区。 它为ReadAsync的每次后续调用执行此操作 – 使用服务器在断开连接之前发送的内容重新填充缓冲区。 这是代码的简化版本: public async Task TestSocketConnectionAsync() { var socket = new StreamSocket(); await socket.ConnectAsync(new HostName(Host), Port.ToString(), SocketProtectionLevel.PlainSocket); var dr = new DataReader(socket.InputStream); dr.InputStreamOptions = InputStreamOptions.Partial; this.cts = new CancellationTokenSource(); this.listenerOperation = StartListeningAsync(dr, cts); } public async Task StartListeningAsync(DataReader dr, CancellationTokenSource cts) […]

在C#中发送UDP数据包

我有一个游戏服务器(魔兽世界)。 我希望我的玩家能够将自定义补丁下载到游戏中。 我做了一个程序来检查更新/下载的东西。 如果玩家拥有我的所有补丁,我希望我的程序将数据包发送到我的游戏服务器。 我不需要服务器的任何响应,它将处理它,但它的另一个故事。 所以我想知道,如何将数据包发送到服务器。 谢谢!