在TCP / IP协议中发送计算机凭据时未将数据接收到文本文件中

时间:2014-01-14 21:01:36

标签: c# sockets tcp tcplistener tcp-ip

我有一台PBX机器,我需要使用Ip和端口号以及用户名和密码进行通信。目前我可以使用IP地址和端口号连接到机器。但是发送用户名和机器上的密码用于身份验证我没有将所需的数据从机器输出到文本文件中,而是我将用户名和密码以这样的格式发送到机器上的文本文件。

这是我在c#中的代码。

        ipaddress = "";
        int port = int.Parse("");
        textfileSaveLocation = "";

        byte[] data = new byte[1024];
        string stringData;
        //string input;

            IPAddress ipadd = IPAddress.Parse(ipaddress);
            IPEndPoint ipend = new IPEndPoint(ipadd,port);
            Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
            sock.NoDelay = false;
            try
            {
                sock.Connect(ipend);
                textBox4.AppendText("Connected to host" + "\r\n");
            }
            catch (Exception dfg)
            {
                textBox4.AppendText("Problem connecting to host" + "\r\n");
                textBox4.AppendText(dfg.ToString ()+"\r\n");
                return;
            }
            try
            {
                int recv = sock.Receive(data);
                stringData = Encoding.ASCII.GetString(data, 0, recv);
                textBox4.AppendText(stringData + "\r\n");
                while (true)
                {
                    Byte[] bBuf;
                    string buf;


                    Application.DoEvents();

                    buf = String.Format("{0}/{1}", "SMDR", "PCCSMDR");
                    bBuf = Encoding.ASCII.GetBytes(buf);
                    sock.Send(bBuf);     


                    data = new byte[1024];
                    recv = sock.Receive(data);
                    stringData = Encoding.ASCII.GetString(data, 0, recv);
                    textBox4.AppendText(stringData + "\r\n");
                    string df = "";
                     try

        }

我试图弄清楚两天的错误,但却无法找到答案。只是帮助我摆脱错误的地方..

2 个答案:

答案 0 :(得分:2)

specification提及:

  

您可以激活“ASCII数据查询”插件并将登录/密码请求指定为:   SMDR#0D#0APCCSMDR#0D#0A

因此用户名和密码都需要回车终止:

buf = String.Format("{0}\r\n{1}\r\n", "SMDR", "PCCSMDR");

答案 1 :(得分:0)

这是指定软件用于发送登录和passowrd的特殊格式字符串。

命令字符串将被解释为:

SMDR< CR>< LF> PCCSMDR< CR>< LF>