문제

I'm trying to develop a class that connect to iSeries (as400 - PGM Program) by sockets. The connection works fine but when I try to send data and receive it's get an error.

This is the code:

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());
        }
    }
}

What could be wrong?

도움이 되었습니까?

해결책

Check the software that is supposed to be listening to that port on the iSeries. Make sure that it is running, that it is listening to that port. Work with that job, and look at the job log to see what messages were sent. Check the program stack to see what statement it is on, which may help determine what has happened. The open files & I/O stats might also help.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top