我需要一个关于winforms的建议

时间:2011-02-03 08:26:54

标签: c# winforms

基本上,我在控制台上发送了一个发送和接收信息的应用程序。它就像聊天一样(它确实有效,就像我聊天一样,我查了一下)。

现在我在这里做了什么。我将一些代码转换为winform,我很难理解如何将接收到的输出(readLine)打印在标签上并输入由textfield发送!!

你可以指导我并告诉我我的错误在哪里,以及如何让聊天工作?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        TcpClient connection;
        StreamReader sr;
        StreamWriter sw;

        public Form1()
        {
            InitializeComponent();
        }

        private void connectServer()
        {
             connection = new TcpClient("127.0.0.1", 5000);
             sr = new StreamReader(connection.GetStream());
             sw = new StreamWriter(connection.GetStream());
        }

        void button_Click(object sender, EventArgs e)
        {

        }


        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
                sw.WriteLine(richTextBox1.Text);
                sw.Flush();            
        }

        private void label1_Click(object sender, EventArgs e)
        {
            label1.Text = sr.ReadLine();
        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {

        }

    }
}

1 个答案:

答案 0 :(得分:-1)

因此...

你可以在哪里聊天? 同一台计算机同一网络互联网

您需要创建一个服务来处理对话,一个全局点,用于所有聊天,获取消息并保存。

然后,您需要从每个客户端连接到该全局点并创建一个“房间”并将客户端作为可观察的附加,每次在该“房间中有新消息” “,所有可观察的客户都会收到传入消息的警告并更新他们的文本框。

如果您想避免使用“全局点”,您可以使用套接字,但如果客户端位于NAT后面,它可能无效。

这是 WCF

中的完整应用程序
  

http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx