Отправка и получение данных на iSeries Socket (AS400) C#

Я пытаюсь разработать класс, который подключается к iSeries (программа as400 - PGM) через сокеты. Соединение работает нормально, но когда я пытаюсь отправить данные и получить их, возникает ошибка.

Это код:

class Program
{
    public static void StartClient()
    {
        byte[] bytes = new byte[1024];
        string desaip = "10.112.2.11";

        // Connect to a remote device.
        try
        {

            IPAddress[] ipAddress = Dns.GetHostAddresses(desaip);
            IPEndPoint remoteEP = new IPEndPoint(ipAddress[0], 42125);

            // Create a TCP/IP  socket.
            Socket sender = new Socket(AddressFamily.InterNetwork,
                SocketType.Stream, ProtocolType.Tcp);

            // Connect the socket to the remote endpoint. Catch any errors.
            try
            {
                sender.Connect(remoteEP);

                Console.WriteLine("Socket connected to {0}",
                    sender.RemoteEndPoint.ToString());


                #region forma A
                // Encode the data string into a byte array.
                byte[] msg = Encoding.ASCII.GetBytes("PRUEBAIB");


                // Send the data through the socket.
                int bytesSent = sender.Send(msg);

                // Receive the response from the remote device.
                sender.ReceiveTimeout = 10000;
                int bytesRec = sender.Receive(bytes);

                Console.WriteLine("Echoed test = {0}",
                    Encoding.ASCII.GetString(bytes, 0, bytesRec));

                // Release the socket.
                sender.Shutdown(SocketShutdown.Both);
                sender.Close();
                #endregion forma A


            }
            catch (ArgumentNullException ane)
            {
                Console.WriteLine("ArgumentNullException : {0}", ane.ToString());
            }
            catch (SocketException se)
            {
                Console.WriteLine("SocketException : {0}", se.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine("Unexpected exception : {0}", e.ToString());
            }

        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
    }
}

Что может быть не так?

1 ответ

Решение

Проверьте программное обеспечение, которое должно прослушивать этот порт на iSeries. Убедитесь, что он работает, что он прослушивает этот порт. Работайте с этим заданием и посмотрите в журнале заданий, чтобы увидеть, какие сообщения были отправлены. Проверьте программный стек, чтобы увидеть, в каком операторе он находится, что может помочь определить, что произошло. Открытые файлы и статистика ввода-вывода также могут помочь.

Другие вопросы по тегам