在文本框中手动输入并连接到服务器

Posted

技术标签:

【中文标题】在文本框中手动输入并连接到服务器【英文标题】:manually input in textbox and connected to the server 【发布时间】:2011-01-01 13:15:10 【问题描述】:

现在,当我按下连接按钮时,我将通过默认 IP 地址和端口号连接到服务器。 clientSocket.Connect("127.0.0.1", 8888);

我想在 GUI 中创建 2 个文本框,1 个用于 IP 地址,1 个用于端口。 这样用户可以手动键入 IP 地址和端口。 我可以知道该怎么做吗?谢谢。

使用系统; 使用 System.Collections.Generic; 使用 System.ComponentModel; 使用 System.Data; 使用 System.Drawing; 使用 System.Linq; 使用 System.Text; 使用 System.Windows.Forms; 使用 System.Net.Sockets; 使用 System.Threading;

命名空间 SocketClient

public partial class SocketClient : Form

    System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
    NetworkStream serverStream = default(NetworkStream);
    string readData = null;


    public SocketClient()
    
        InitializeComponent();
    


    private void getMessage()
    
        while (true)
        
            serverStream = clientSocket.GetStream();
            int buffSize = 0;
            byte[] inStream = new byte[10025];
            buffSize = clientSocket.ReceiveBufferSize;
            serverStream.Read(inStream, 0, buffSize);
            string returndata = System.Text.Encoding.ASCII.GetString(inStream);
            readData = "" + returndata;
            msg();
        
    


    private void msg()
    
        if (this.InvokeRequired)
            this.Invoke(new MethodInvoker(msg));
        else
            textDisplay.Text = textDisplay.Text + Environment.NewLine + " >> " + readData;
    


    private void buttonConnect_Click(object sender, EventArgs e)
    
        readData = "Conected to NYP Chat Server ...";
        msg();
        //
        clientSocket.Connect("127.0.0.1", 8888);
        serverStream = clientSocket.GetStream();

        byte[] outStream = System.Text.Encoding.ASCII.GetBytes(textName.Text + "$");
        serverStream.Write(outStream, 0, outStream.Length);
        serverStream.Flush();

        Thread ctThread = new Thread(getMessage);
        ctThread.Start();
    


    private void buttonSend_Click(object sender, EventArgs e)
    

    

    private void textDisplay_TextChanged(object sender, EventArgs e)
    

    

【问题讨论】:

【参考方案1】:

在设计器视图中,在所需位置添加两个 TextBox,并将 texbbox 命名为 tbIp 和 tbPort。

更新下一行 clientSocket.Connect("127.0.0.1", 8888); 到 clientSocket.Connect(tbIp.Text, Convert.Int32(tbPort.Text));

问候 阿伦达杰

【讨论】:

我有一个错误说'system.convert'不包含'int32'的目的地 我已经知道错误了。转换.ToInt32(tbPort.Text));你省略了To

以上是关于在文本框中手动输入并连接到服务器的主要内容,如果未能解决你的问题,请参考以下文章

Derby 在 Java 应用程序中自动启动服务器并连接到数据库

如何在 AsyncTask 中启动客户端并连接到服务器?

docker app 在 https 上服务并连接到外部 rethinkdb

发送标头并连接到 Java 中的 Socket 服务器

Flyway 与 Git 集成并连接到 Snowflake

在 mac os x 上安装 cloudera impala shell 并连接到 impala 集群