简体   繁体   中英

how to restrict user to enter 128 bits in txtPrivateID and 128 bits in txtPublicID in c#

I have a client which takes IMPI(txtPrivateID.txt) and IMPU(txtPublicID.txt) two IDs for registeration from the user and send text values to server.

  • IMPI text should be 128-bits long and it needs to follow the pattern like 'bob@ims.com'.
  • IMPU should also be 128-bits long and its pattern is numeric like '3556'.

Any hint about how to do it?

Client:

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;

namespace tcp_client
{
    public partial class Form1 : Form
    {
        System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
        NetworkStream serverStream;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        public void ConnectToServer()
        {
            string server_localip = GetLocalIP();
            clientSocket.Connect(server_localip, 8888);

        }

        public void SendData(string dataTosend)
        {
            if (string.IsNullOrEmpty(dataTosend))
                return;
            NetworkStream serverStream = clientSocket.GetStream();
            byte[] outStream = new byte[33];
               outStream= System.Text.Encoding.ASCII.GetBytes(dataTosend);
            serverStream.Write(outStream, 0, outStream.Length);
            serverStream.Flush();


        }

        public void CloseConnection()
        {
            clientSocket.Close();
        }
        public string ReceiveData()
        {
            StringBuilder message = new StringBuilder();
            serverStream = clientSocket.GetStream();
            serverStream.ReadTimeout = 100;
            //the loop should continue until no dataavailable to read and message string is filled.
            //if data is not available and message is empty then the loop should continue, until
            //data is available and message is filled.
            while (true)
            {
                if (serverStream.DataAvailable)
                {
                    int read = serverStream.ReadByte();
                    if (read > 0)
                        message.Append((char)read);
                    else
                        break;
                }
                else if (message.ToString().Length > 0)
                    break;
            }
            return message.ToString();
        }
        public string GetLocalIP()
        {
            IPHostEntry host;
            host = Dns.GetHostEntry(Dns.GetHostName());
            foreach (IPAddress ip in host.AddressList)
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                {
                    return ip.ToString();
                }
            }
            return "127.0.0.1";
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            ConnectToServer();
            btnConnect.Text = "Connected";
        }

        private void btnRegister_Click(object sender, EventArgs e)
        {
            string data = txtPrivateId.Text + ";" + txtPublicId.Text;

                SendData(data);

                string rec = null;
                rec = ReceiveData();
                txtReceive.Text = rec;

          //  CloseConnection();

        }
    }
}

可以通过使用TextBox事件之一(例如TextChanged)来完成内容的验证,或者可以在发布的代码中的btnRegister_Click中完成验证。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM