我做了很多谷歌搜索,但我的问题没有太多运气.我是网络编程的新手并且正在努力学习,我试图建立一个简单的服务器和客户端进行通信(按照这里的在线教程 - > http://tech.pro/tutorial/704/csharp-tutorial- simple-threaded-tcp-server)
我遇到的问题是我一直得到异常"当尝试在服务器上启动TcpListener时,通常只允许使用每个套接字地址(协议/网络地址/端口)".
我已经尝试禁用我的防火墙,更改要使用的端口,移动变量但无效(客户端工作正常,但它显然无法找到服务器,因为我无法启动它).
我已经看到了描述Socket.Poll()使用的解决方案,但由于我只使用TcpListener对象,所以我不知道如何使用Poll函数.
我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Net;
using System.Threading;
using System.Text;
namespace ServerTutorial {
class Server {
private readonly Thread m_listenThread;
public Server() {
m_listenThread = new Thread(new ThreadStart(ListenForClients));
m_listenThread.Start();
}
public void ListenForClients() {
var listener = new TcpListener(IPAddress.Any, 3000);
listener.Start();
while (true) {
//Blocks until a client has connected to the server
TcpClient client = listener.AcceptTcpClient();
//Send a message to the client
var encoder = …Run Code Online (Sandbox Code Playgroud) 我目前正在构建一个异步控制台应用程序,我在其中创建了类来处理应用程序的不同区域.
我创建了一个InputHandler类,我设想它将等待Console.ReadLine()输入.但是,你不能等待这样的功能(因为它不是异步),我目前的解决方案是:
private async Task<string> GetInputAsync() {
return Task.Run(() => Console.ReadLine())
}
Run Code Online (Sandbox Code Playgroud)
哪个运行得很好.但是,我的(有限的)理解是调用Task.Run将触发一个新的(并行?)线程.这违背了异步方法的目的,因为新线程现在被阻塞,直到Readline()返回正确?
我知道线程是一种昂贵的资源,所以我觉得非常浪费和hacky这样做.我也试过Console.In.ReadLineAsync(),但它显然是马车?(好像挂了).
我正在做一个课程,其中一部分涉及我必须在我的游戏中有一个工作记分牌,但是,我需要一种方法来通过score.score对Score对象列表进行排序.由于我的Score对象包含玩家名称以及他们达到的等级.
我在编程方面不是很有经验,并且已经做了不到一年的时间,我从搜索中找到的所有人都在谈论lambda或IComparable,这两者我都不知道或者如何使用和MSDN没有似乎让我很容易理解:(
我把头发拉到这里,任何帮助都会很棒!
在伪所有我需要的是:
List<Score> scores;
// Load in scores
scores.Sort(//sort by score.actualScore)
Run Code Online (Sandbox Code Playgroud)
因此,当添加新分数时,我可以在列表中添加和删除正确的位置.
你怎么称呼一个从未打算在C#中实例化的类?
例如,我将所有类文件放在一个名为Objects的文件夹中,但是,现在我想要一个只包含控制其他对象使用的静态方法的类,但是它永远不会被实例化,我不知道在哪里把它放在我的文件结构或什么叫它!
非常感谢!
我正在尝试在XNA中创建一个保存文件目录,我有一个XML序列化器设置来存储游戏的分数,但是当游戏第一次运行时,我希望它在用户文档中创建一个名为SaveData的文件夹中的文件.我可以创建它的XML文件,但我不知道如何在用户文档中创建它,因为每次用户名都不同?
所以我的问题是如何保存相对于任何用户名的文档?
c# ×5
async-await ×1
asynchronous ×1
class ×1
console ×1
exception ×1
file ×1
list ×1
networking ×1
save ×1
sorting ×1
static ×1
tcplistener ×1