小编Ila*_*321的帖子

接受TCP客户端异步

我一直在制作服务器.我在方法中使用TcpListener.AcceptTcpClientAsync()async,但我不知道如何实际使它工作.我的代码现在是:

private static async void StartServer()
{
    Console.WriteLine("S: Server started on port {0}", WebVars.ServerPort);
    var listener = new TcpListener(WebVars.LocalIp, WebVars.ServerPort);
    listener.Start();
    var client = await listener.AcceptTcpClientAsync();
}
Run Code Online (Sandbox Code Playgroud)

我该如何处理客户?我只是继续编码,它会自动创建相同方法的新线程,还是我需要做一些魔术方法来为我做?

编辑:当前代码:

private static Task HandleClientAsync(TcpClient client)
{
    var stream = client.GetStream();
    // do stuff
}
/// <summary>
/// Method to be used on seperate thread.
/// </summary>
private static async void RunServerAsync()
{
    while (true)
    {
        Console.WriteLine("S: Server started on port {0}", WebVars.ServerPort);
        var listener = new TcpListener(WebVars.LocalIp, WebVars.ServerPort);
        listener.Start(); …
Run Code Online (Sandbox Code Playgroud)

c# tcp tcplistener tcpclient

6
推荐指数
2
解决办法
1万
查看次数

Firebase数据库侦听器在经过身份验证后不会在一段时间后触发

我正在创建一个应用程序,我遇到了Firebase的数据库和身份验证服务的问题.

过了一会儿,当我验证(使用火力地堡验证),并使用我的应用程序,似乎我的数据库ValueEventListeners不被调用,即使数据库中的数据.

我如何添加我的听众:

FirebaseDatabase
        .getInstance()
        .getReference()
        .child("my_child")
        .addValueEventListener(new ValueEventListener()
        {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot)
            {
                Log.d("App", "onDataChange");
            }

            @Override
            public void onCancelled(DatabaseError databaseError)
            {

            }
        });
Run Code Online (Sandbox Code Playgroud)

我试过的东西:

  • 检查数据库规则(在重新读取之后很好 - 但是即使在经过身份验证和未经身份验证的情况下,模拟读取也会通过)
  • 对DatabaseReferences的keepSynced(true)
  • 在Activity的onCreate中添加侦听器而不是Application的onCreate
  • 添加/删除/更新数据库中的数据以触发同步
  • 重新启动

任何帮助将非常感激.

android firebase-authentication firebase-realtime-database

5
推荐指数
1
解决办法
262
查看次数

替换列表C#中的字符串

我一直在编写一个程序,用于存储学生姓名和年龄(名字,姓氏,年龄在.txt文件中).我现在正在制作"删除学生"部分,当我希望用户选择要删除的名称(通过切断文件名的.txt扩展名来打印)时,它不会替换".txt"部分没有.
代码是:

    string inputSel; // Selection string for delete
    Console.WriteLine(" -- Deleting Grade {0} -- ", grade);
    Console.WriteLine("- Enter a student name to delete: ");
    foreach (string file in fileNames)
    {
        file.Replace(".txt", "");
        studentNames.Add(file);
        Console.WriteLine(file); // debug
    }
    foreach (string name in studentNames)
    {
        Console.Write("{0}\t", name);
    }
    Console.WriteLine();
    Console.Write("> ");
    inputSel = Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

其中fileNames是a List<string>,它是此代码所在方法的参数.schoolNames也是a List<string>,它存储名称(文件名不包含.txt),但由于某种原因,它仍然使用.txt打印名称.
长话短说,它不会取代".txt""".

c# string foreach

4
推荐指数
1
解决办法
211
查看次数

返回if语句

我一直用C#编写一个文本冒险游戏.我想做一个你遇到口袋妖怪的场景.我想让3个随机口袋妖怪遇到,我做了一个方法,返回你找到的口袋妖怪的名字.代码是:

public string choosePokemon()  
{  
    Random random = new Random();  
    int pokemonChosen = random.Next();  
    if (pokemonChosen == 1)  
    {  
        string pokemon = "Pidgey";  
        return pokemon;  
    }  
    if (pokemonChosen == 2)   
    {  
        string pokemon = "Charmander";  
        return pokemon;  
    }  
    if (pokemonChosen == 3)  
    {  
        string pokemon = "Geodude";  
        return pokemon;  
    }  
    return "missingno";  
} 
Run Code Online (Sandbox Code Playgroud)

每当我执行代码时,它都会显示"你遇到了一个missno!".我希望它返回名称并打破方法,返回到场景的方法.我return "missingno";在最后放了一个,因为Studio会给我一个错误,并非所有代码路径都返回一个值.

c# if-statement return

3
推荐指数
4
解决办法
4680
查看次数

在XDocument中向元素添加元素

我一直在编写一个使用XML的数据库程序.每当程序引导并且在指定的路径中找不到XML文件时,它就会生成:

<!--  Studnet Database  -->
<schoolDB>
    <Grades>
        <Grade10/>
        <Grade11/>
        <Grade12/>
    </Grades>
    <Employees/>
</schoolDB>
Run Code Online (Sandbox Code Playgroud)

我希望程序在元素中添加一个element被调用者(提示用户输入10到12之间的等级,然后将其解析为Grade10 - > Grade12).我写了这个: studentGrade*

    XDocument doc = XDocument.Load(prog.dbFile);
    doc.Element(toWriteGrade).Add(new XElement("student",
            new XElement("name", name),
            new XElement("age", age)));
    doc.Save(prog.dbFile);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它给了我一个错误:

StudentClone1.exe中出现未处理的"System.NullReferenceException"类型异常.附加信息:对象引用未设置为对象的实例.

这有什么不对?

c# xml linq linq-to-xml

0
推荐指数
1
解决办法
7626
查看次数

XDocument声明失败

我一直在编写一个使用的聊天程序System.Net.我也有一个配置XML文件%appdata%\.ilan,但是当我想声明一个新的XDocument类型变量时,Visual Studio Ultimate 2013不会将它识别为变量,当我完成整个变量时,它说get or set accessor expected.我在使用XDocument的同一个Studio中创建了一个不同的程序,它在那里工作!
我有System.Xml;,System.Xml.Linq;在顶部,所以我不知道我的代码有什么问题:

public void DefaultXML
{
    XDocument doc = new XDocument(
    new XDeclaration("1.0", "utf-8", "yes"),
    new XComment(" - IlanChat Settings File - "),
    new XElement("settings",
        new XElement("nick", "User")));
}
Run Code Online (Sandbox Code Playgroud)

我把它与我之前的程序进行了比较,语法是一样的.

c# xml linq

0
推荐指数
1
解决办法
117
查看次数