2

嗨,我从服务器收到此错误。这是使用隧道到外部 IP 的 TCP 套接字连接。我们从源 IP 向目标服务器 IP、端口发送请求。这是提供给我们的有关如何连接的信息。

  1. 您的软件从您的客户端平台打开一个套接字以连接我们的服务器平台。
    1. 我们的服务器将通过启动“保持活动”对话框来响应。
    2. 您的软件将发送一个带有单个资格请求的 X12 传输数据包。
    3. 我们的服务器将检查收件人的信息并发送响应以允许或拒绝资格

这是我用于连接、发送、接收和接收消息的客户端代码。我不确定一件事。我做 HTTP Post 的方式。他们给了我们一个样品请求。这是它的样子

POST /OKMMISPOS HTTP/5.1
Content-Length: 521

ISA*00*__________*00*__________*ZZ*500000330______*ZZ*731476619______*090303*1414*U*004

--------------这是消息的X12内容---------------------------- ---------

   private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //create a new client socket ...
                string szIPSelected = "127.0.0.1";
                int szPort = 57000;
                if (textBox1.Text != "")
                    szIPSelected = textBox1.Text;
                if (textBox2.Text != "")
                    szPort = Int32.Parse(textBox2.Text);
                m_socClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);


                System.Net.IPAddress remoteIPAddress = System.Net.IPAddress.Parse(szIPSelected);
                System.Net.IPEndPoint remoteEndPoint = new System.Net.IPEndPoint(remoteIPAddress, szPort);
                m_socClient.Connect(remoteEndPoint);
                if (m_socClient.Connected)
                {
                    toolStripStatusLabel1.Text = "Connected to " + szIPSelected + ":" + szPort;
                    statusStrip1.Refresh();
                    SendRequest(m_socClient);
                    toolStripStatusLabel1.Text = "Sending  Request to  " + szIPSelected + ":" + szPort;
                    statusStrip1.Refresh();
                }
                Thread.Sleep(3000);

                byte[] bytes = new byte[1024];
                int bytesRec = m_socClient.Receive(bytes);
                txtResponse271.Text =
                       Encoding.ASCII.GetString(bytes, 0, bytesRec);


            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }

        }
        private void SendRequest(Socket m_socClient)
        {

            string resource = "/OKMMISPOS";
            var header = String.Format("POST {0} HTTP/1.1\r\n", resource);
            String body = Query270;
            byte[] bodyBytes = Encoding.ASCII.GetBytes(body);
            header += "Content-Length: " + (body.Length + 1)+ "\r\n" + "\r\n";
            string request = String.Concat(header,body);
            textBox3.Text = request;
            textBox3.Refresh();
            byte[] requestBytes= Encoding.ASCII.GetBytes(request);
            m_socClient.Send(requestBytes);
        }

我的代码发送了一个类似于他们的请求,但我收到了一个 HTTP 400 错误请求。在 wireshark 上,请求开始使用 TCP 协议。这是wireshark的截图。HTTP 400。也不确定这是否是小鬼,请求以 TCP 开始,响应以 HTTP 请求的形式返回 在此处输入图像描述

回复 在此处输入图像描述

4

0 回答 0