ввод вручную в текстовое поле и подключение к серверу - PullRequest
0 голосов
/ 05 января 2010

Прямо сейчас, когда я нажимаю кнопку подключения, я буду подключен к серверу по умолчанию по IP-адресу и номеру порта. clientSocket.Connect ("127.0.0.1", 8888);

Я хотел бы создать 2 текстовых поля в графическом интерфейсе, 1 для IP-адреса и 1 для порта. Так что пользователь может вручную ввести IP-адрес и порт. Могу ли я знать, как это сделать. спасибо.

с использованием системы; using System.Collections.Generic; using System.ComponentModel; используя System.Data; использование System.Drawing; использование System.Linq; используя System.Text; использование System.Windows.Forms; использование System.Net.Sockets; используя System.Threading;

namespace 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 Ответ

1 голос
/ 05 января 2010

В представлении конструктора добавьте два текстовых поля в нужные позиции и назовите текстовые поля как tbIp и tbPort.

обновить строку после строки clientSocket.Connect ("127.0.0.1", 8888); в clientSocket.Connect (tbIp.Text, Convert.Int32 (tbPort.Text));

С уважением ArunDhaJ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...