2009-04-17 11 views
3

Ich verwende jcreatorLE und JDK 1.6, um mein Programm zu starten. Ich weiß nicht, warum ich einen Fehler bekomme, wenn ich versuche zu laufen. Kann mir jemand den Grund erklären?Warum erhalte ich einen Fehler, wenn ich versuche, mein Socket-Programm in Java auszuführen?

Dies ist der Code für den Server:

import java.io.*; 
import java.net.*; 

class ServidorTCP { 
    // variable to wait for connections 
    private static ServerSocket servidor = null; 
    // Variable to process client connections 
    private static Socket conexion = null; 
    // To send data to the client 
    private static DataOutputStream salida = null; 
    // Read the client 
    private static DataInputStream entrada = null; 

    public static void main(String args[]) { 
     // args [0] is the port number to be listened to 
     int puerto = new Integer(args[0]).intValue(); 

     // opening of the socket 
     try { 
     // Port where the client requests pending 
     servidor = new ServerSocket(puerto); 

     System.out.println("Servidor TCP iniciado..."); 
     boolean ejecutar = true; 

     // It is starting to respond to requests 
     while (ejecutar) { 
      System.out.println("\nWaiting for Connections..."); 
      conexion = servidor.accept();  // Connection is expected 

      // The connection was established with the client 
      entrada = new DataInputStream(conexion.getInputStream()); 
      salida = new DataOutputStream(conexion.getOutputStream()); 

      System.out.println("\nConexion recibida...\n"); 
      String inicio = entrada.readUTF(); 
      System.out.println("Reception Date: "+new java.util.Date()); 
      System.out.println("From: "+(conexion.getInetAddress()).toString()); 
      System.out.println("received: "+inicio); 

      salida.writeUTF(inicio.toUpperCase()); 
      entrada.close(); 
      salida.close(); 
      conexion.close(); 
     } 

     // Close the socket 
     System.out.println("\ntransmission completed...\n"); 
     servidor.close(); 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 
} 

Dies ist der Code für das Client-Socket-Programm:

import java.io.*; 
import java.net.*; 

class ClienteTCP { 
    private static Socket   cliente = null; 
    private static DataInputStream entrada = null; 
    private static DataOutputStream salida = null; 

    public static void main(String args[]) { 
     int len = new Integer(args.length); 
     String cadena = ""; 
     System.out.println("\nNumero de arg: "+len); 
     for (int i=2; i<len;i++) { 
     cadena = cadena + args[i]; 
     cadena = cadena + " "; 
     } 

     System.out.println("\nLa Cadena: "+cadena); 
     int puerto = new Integer(args[1]).intValue(); 

     try { 
     cliente = new Socket(args[0],puerto); 
     entrada = new DataInputStream(cliente.getInputStream()); 
     salida = new DataOutputStream(cliente.getOutputStream()); 

     //SENDING INFORMATION DATA 
     System.out.println("\nEnviando datos al servidor: "+cadena); 
     salida.writeUTF(cadena); 

     //Recibiendo la información 
     System.out.println("Recibido: "+entrada.readUTF()); 
     entrada.close(); 
     salida.close(); 

     //Cierre del socket 
     cliente.close(); 
     System.out.println("\nConexion terminada...\n"); 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 
} 

Dies ist das Ergebnis es ab:

[Loaded java.lang.Object from shared objects file] 
[Loaded java.io.Serializable from shared objects file] 
[Loaded java.lang.Comparable from shared objects file] 
[Loaded java.lang.CharSequence from shared objects file] 
[Loaded java.lang.String from shared objects file] 
[Loaded java.lang.reflect.GenericDeclaration from shared objects file] 
[Loaded java.lang.reflect.Type from shared objects file] 
[Loaded java.lang.reflect.AnnotatedElement from shared objects file] 
[Loaded java.lang.Class from shared objects file] 
[Loaded java.lang.Cloneable from shared objects file] 
[Loaded java.lang.ClassLoader from shared objects file] 
[Loaded java.lang.System from shared objects file] 
[Loaded java.lang.Throwable from shared objects file] 
[Loaded java.lang.Error from shared objects file] 
[Loaded java.lang.ThreadDeath from shared objects file] 
[Loaded java.lang.Exception from shared objects file] 
[Loaded java.lang.RuntimeException from shared objects file] 
[Loaded java.security.ProtectionDomain from shared objects file] 
[Loaded java.security.AccessControlContext from shared objects file] 
[Loaded java.lang.ClassNotFoundException from shared objects file] 
[Loaded java.lang.LinkageError from shared objects file] 
[Loaded java.lang.NoClassDefFoundError from shared objects file] 
[Loaded java.lang.ClassCastException from shared objects file] 
[Loaded java.lang.ArrayStoreException from shared objects file] 
[Loaded java.lang.VirtualMachineError from shared objects file] 
[Loaded java.lang.OutOfMemoryError from shared objects file] 
[Loaded java.lang.StackOverflowError from shared objects file] 
[Loaded java.lang.IllegalMonitorStateException from shared objects file] 
[Loaded java.lang.ref.Reference from shared objects file] 
[Loaded java.lang.ref.SoftReference from shared objects file] 
[Loaded java.lang.ref.WeakReference from shared objects file] 
[Loaded java.lang.ref.FinalReference from shared objects file] 
[Loaded java.lang.ref.PhantomReference from shared objects file] 
[Loaded java.lang.ref.Finalizer from shared objects file] 
[Loaded java.lang.Runnable from shared objects file] 
[Loaded java.lang.Thread from shared objects file] 
[Loaded java.lang.Thread$UncaughtExceptionHandler from shared objects file] 
[Loaded java.lang.ThreadGroup from shared objects file] 
[Loaded java.util.Dictionary from shared objects file] 
[Loaded java.util.Map from shared objects file] 
[Loaded java.util.Hashtable from shared objects file] 
[Loaded java.util.Properties from shared objects file] 
[Loaded java.lang.reflect.AccessibleObject from shared objects file] 
[Loaded java.lang.reflect.Member from shared objects file] 
[Loaded java.lang.reflect.Field from shared objects file] 
[Loaded java.lang.reflect.Method from shared objects file] 
[Loaded java.lang.reflect.Constructor from shared objects file] 
[Loaded sun.reflect.MagicAccessorImpl from shared objects file] 
[Loaded sun.reflect.MethodAccessor from shared objects file] 
[Loaded sun.reflect.MethodAccessorImpl from shared objects file] 
[Loaded sun.reflect.ConstructorAccessor from shared objects file] 
[Loaded sun.reflect.ConstructorAccessorImpl from shared objects file] 
[Loaded sun.reflect.DelegatingClassLoader from shared objects file] 
[Loaded sun.reflect.ConstantPool from shared objects file] 
[Loaded sun.reflect.FieldAccessor from shared objects file] 
[Loaded sun.reflect.FieldAccessorImpl from shared objects file] 
[Loaded sun.reflect.UnsafeFieldAccessorImpl from shared objects file] 
[Loaded sun.reflect.UnsafeStaticFieldAccessorImpl from shared objects file] 
[Loaded java.lang.Iterable from shared objects file] 
[Loaded java.util.Collection from shared objects file] 
[Loaded java.util.AbstractCollection from shared objects file] 
[Loaded java.util.List from shared objects file] 
[Loaded java.util.AbstractList from shared objects file] 
[Loaded java.util.RandomAccess from shared objects file] 
[Loaded java.util.Vector from shared objects file] 
[Loaded java.lang.Appendable from shared objects file] 
[Loaded java.lang.AbstractStringBuilder from shared objects file] 
[Loaded java.lang.StringBuffer from shared objects file] 
[Loaded java.lang.StackTraceElement from shared objects file] 
[Loaded java.nio.Buffer from shared objects file] 
[Loaded sun.misc.AtomicLong from shared objects file] 
[Loaded sun.misc.AtomicLongCSImpl from shared objects file] 
[Loaded java.lang.Boolean from shared objects file] 
[Loaded java.lang.Character from shared objects file] 
[Loaded java.lang.Number from shared objects file] 
[Loaded java.lang.Float from shared objects file] 
[Loaded java.lang.Double from shared objects file] 
[Loaded java.lang.Byte from shared objects file] 
[Loaded java.lang.Short from shared objects file] 
[Loaded java.lang.Integer from shared objects file] 
[Loaded java.lang.Long from shared objects file] 
[Loaded java.io.ObjectStreamField from shared objects file] 
[Loaded java.util.Comparator from shared objects file] 
[Loaded java.lang.String$CaseInsensitiveComparator from shared objects file] 
[Loaded java.security.Guard from shared objects file] 
[Loaded java.security.Permission from shared objects file] 
[Loaded java.security.BasicPermission from shared objects file] 
[Loaded java.lang.RuntimePermission from shared objects file] 
[Loaded java.util.AbstractMap from shared objects file] 
[Loaded sun.misc.SoftCache from shared objects file] 
[Loaded java.lang.ref.ReferenceQueue from shared objects file] 
[Loaded java.lang.ref.ReferenceQueue$Null from shared objects file] 
[Loaded java.lang.ref.ReferenceQueue$Lock from shared objects file] 
[Loaded java.util.HashMap from shared objects file] 
[Loaded java.lang.annotation.Annotation from shared objects file] 
[Loaded java.util.Map$Entry from shared objects file] 
[Loaded java.util.HashMap$Entry from shared objects file] 
[Loaded java.security.AccessController from shared objects file] 
[Loaded java.lang.reflect.ReflectPermission from shared objects file] 
[Loaded java.security.PrivilegedAction from shared objects file] 
[Loaded sun.reflect.ReflectionFactory$GetReflectionFactoryAction from shared objects file] 
[Loaded java.util.Stack from shared objects file] 
[Loaded sun.reflect.ReflectionFactory from shared objects file] 
[Loaded java.lang.ref.Reference$Lock from shared objects file] 
[Loaded java.lang.ref.Reference$ReferenceHandler from shared objects file] 
[Loaded java.lang.ref.Finalizer$FinalizerThread from shared objects file] 
[Loaded java.util.Enumeration from shared objects file] 
[Loaded java.util.Hashtable$EmptyEnumerator from shared objects file] 
[Loaded java.util.Iterator from shared objects file] 
[Loaded java.util.Hashtable$EmptyIterator from shared objects file] 
[Loaded java.util.Hashtable$Entry from shared objects file] 
[Loaded sun.misc.Version from shared objects file] 
[Loaded java.lang.Runtime from shared objects file] 
[Loaded sun.reflect.Reflection from shared objects file] 
[Loaded java.util.Collections from shared objects file] 
[Loaded java.util.Set from shared objects file] 
[Loaded java.util.AbstractSet from shared objects file] 
[Loaded java.util.Collections$EmptySet from shared objects file] 
[Loaded java.util.Collections$EmptyList from shared objects file] 
[Loaded java.util.Collections$EmptyMap from shared objects file] 
[Loaded java.util.Collections$ReverseComparator from shared objects file] 
[Loaded java.util.Collections$SynchronizedMap from shared objects file] 
[Loaded java.io.File from shared objects file] 
[Loaded java.io.FileSystem from shared objects file] 
[Loaded java.io.Win32FileSystem from shared objects file] 
[Loaded java.io.WinNTFileSystem from shared objects file] 
[Loaded java.io.ExpiringCache from shared objects file] 
[Loaded java.util.LinkedHashMap from shared objects file] 
[Loaded java.io.ExpiringCache$1 from shared objects file] 
[Loaded java.util.LinkedHashMap$Entry from shared objects file] 
[Loaded sun.security.action.GetPropertyAction from shared objects file] 
[Loaded java.lang.StringBuilder from shared objects file] 
[Loaded java.util.Arrays from shared objects file] 
[Loaded java.lang.Math from shared objects file] 
[Loaded sun.misc.JavaIODeleteOnExitAccess from shared objects file] 
[Loaded java.io.File$1 from shared objects file] 
[Loaded sun.misc.SharedSecrets from shared objects file] 
[Loaded sun.misc.Unsafe from shared objects file] 
[Loaded java.lang.IncompatibleClassChangeError from shared objects file] 
[Loaded java.lang.NoSuchMethodError from shared objects file] 
[Loaded sun.jkernel.DownloadManager from shared objects file] 
[Loaded java.lang.ThreadLocal from shared objects file] 
[Loaded sun.jkernel.DownloadManager$1 from shared objects file] 
[Loaded java.util.concurrent.atomic.AtomicInteger from shared objects file] 
[Loaded java.lang.Class$3 from shared objects file] 
[Loaded java.lang.reflect.Modifier from shared objects file] 
[Loaded sun.reflect.LangReflectAccess from shared objects file] 
[Loaded java.lang.reflect.ReflectAccess from shared objects file] 
[Loaded sun.jkernel.DownloadManager$2 from shared objects file] 
[Loaded java.lang.ClassLoader$3 from shared objects file] 
[Loaded java.io.ExpiringCache$Entry from shared objects file] 
[Loaded java.lang.ClassLoader$NativeLibrary from shared objects file] 
[Loaded java.io.Closeable from shared objects file] 
[Loaded java.io.InputStream from shared objects file] 
[Loaded java.io.FileInputStream from shared objects file] 
[Loaded java.io.FileDescriptor from shared objects file] 
[Loaded java.io.Flushable from shared objects file] 
[Loaded java.io.OutputStream from shared objects file] 
[Loaded java.io.FileOutputStream from shared objects file] 
[Loaded java.io.FilterInputStream from shared objects file] 
[Loaded java.io.BufferedInputStream from shared objects file] 
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater from shared objects file] 
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl from shared objects file] 
[Loaded sun.reflect.misc.ReflectUtil from shared objects file] 
[Loaded java.io.FilterOutputStream from shared objects file] 
[Loaded java.io.PrintStream from shared objects file] 
[Loaded java.io.BufferedOutputStream from shared objects file] 
[Loaded java.io.Writer from shared objects file] 
[Loaded java.io.OutputStreamWriter from shared objects file] 
[Loaded sun.nio.cs.StreamEncoder from shared objects file] 
[Loaded java.nio.charset.Charset from shared objects file] 
[Loaded java.nio.charset.spi.CharsetProvider from shared objects file] 
[Loaded sun.nio.cs.FastCharsetProvider from shared objects file] 
[Loaded sun.nio.cs.StandardCharsets from shared objects file] 
[Loaded sun.util.PreHashedMap from shared objects file] 
[Loaded sun.nio.cs.StandardCharsets$Aliases from shared objects file] 
[Loaded sun.nio.cs.StandardCharsets$Classes from shared objects file] 
[Loaded sun.nio.cs.StandardCharsets$Cache from shared objects file] 
[Loaded sun.nio.cs.HistoricallyNamedCharset from shared objects file] 
[Loaded sun.nio.cs.MS1252 from shared objects file] 
[Loaded java.lang.Class$1 from shared objects file] 
[Loaded sun.reflect.ReflectionFactory$1 from shared objects file] 
[Loaded sun.reflect.NativeConstructorAccessorImpl from shared objects file] 
[Loaded sun.reflect.DelegatingConstructorAccessorImpl from shared objects file] 
[Loaded sun.misc.VM from shared objects file] 
[Loaded java.nio.charset.CharsetEncoder from shared objects file] 
[Loaded sun.nio.cs.SingleByteEncoder from shared objects file] 
[Loaded sun.nio.cs.MS1252$Encoder from shared objects file] 
[Loaded java.nio.charset.CodingErrorAction from shared objects file] 
[Loaded java.nio.charset.CharsetDecoder from shared objects file] 
[Loaded sun.nio.cs.SingleByteDecoder from shared objects file] 
[Loaded sun.nio.cs.MS1252$Decoder from shared objects file] 
[Loaded java.nio.ByteBuffer from shared objects file] 
[Loaded java.nio.HeapByteBuffer from shared objects file] 
[Loaded java.nio.Bits from shared objects file] 
[Loaded java.nio.ByteOrder from shared objects file] 
[Loaded java.lang.Readable from shared objects file] 
[Loaded java.nio.CharBuffer from shared objects file] 
[Loaded java.nio.HeapCharBuffer from shared objects file] 
[Loaded java.nio.charset.CoderResult from shared objects file] 
[Loaded java.nio.charset.CoderResult$Cache from shared objects file] 
[Loaded java.nio.charset.CoderResult$1 from shared objects file] 
[Loaded java.nio.charset.CoderResult$2 from shared objects file] 
[Loaded sun.nio.cs.Surrogate$Parser from shared objects file] 
[Loaded sun.nio.cs.Surrogate from shared objects file] 
[Loaded java.io.BufferedWriter from shared objects file] 
[Loaded java.lang.Terminator from shared objects file] 
[Loaded sun.misc.SignalHandler from shared objects file] 
[Loaded java.lang.Terminator$1 from shared objects file] 
[Loaded sun.misc.Signal from shared objects file] 
[Loaded sun.misc.NativeSignalHandler from shared objects file] 
[Loaded java.io.Console from shared objects file] 
[Loaded sun.misc.JavaIOAccess from shared objects file] 
[Loaded java.io.Console$1 from shared objects file] 
[Loaded java.io.Console$1$1 from shared objects file] 
[Loaded java.lang.Shutdown from shared objects file] 
[Loaded java.util.ArrayList from shared objects file] 
[Loaded java.lang.Shutdown$Lock from shared objects file] 
[Loaded java.lang.ApplicationShutdownHooks from shared objects file] 
[Loaded java.util.IdentityHashMap from shared objects file] 
[Loaded sun.misc.OSEnvironment from shared objects file] 
[Loaded sun.io.Win32ErrorMode from shared objects file] 
[Loaded sun.misc.JavaLangAccess from shared objects file] 
[Loaded java.lang.System$2 from shared objects file] 
[Loaded java.lang.NullPointerException from shared objects file] 
[Loaded java.lang.ArithmeticException from shared objects file] 
[Loaded java.lang.Compiler from shared objects file] 
[Loaded java.lang.Compiler$1 from shared objects file] 
[Loaded sun.misc.Launcher from shared objects file] 
[Loaded java.net.URLStreamHandlerFactory from shared objects file] 
[Loaded sun.misc.Launcher$Factory from shared objects file] 
[Loaded java.security.SecureClassLoader from shared objects file] 
[Loaded java.net.URLClassLoader from shared objects file] 
[Loaded sun.misc.Launcher$ExtClassLoader from shared objects file] 
[Loaded sun.security.util.Debug from shared objects file] 
[Loaded sun.misc.JavaNetAccess from shared objects file] 
[Loaded java.net.URLClassLoader$7 from shared objects file] 
[Loaded java.util.StringTokenizer from shared objects file] 
[Loaded java.security.PrivilegedExceptionAction from shared objects file] 
[Loaded sun.misc.Launcher$ExtClassLoader$1 from shared objects file] 
[Loaded sun.misc.MetaIndex from shared objects file] 
[Loaded java.io.Reader from shared objects file] 
[Loaded java.io.BufferedReader from shared objects file] 
[Loaded java.io.InputStreamReader from shared objects file] 
[Loaded java.io.FileReader from shared objects file] 
[Loaded sun.nio.cs.StreamDecoder from shared objects file] 
[Loaded java.lang.reflect.Array from shared objects file] 
[Loaded java.util.Locale from shared objects file] 
[Loaded java.util.concurrent.ConcurrentMap from shared objects file] 
[Loaded java.util.concurrent.ConcurrentHashMap from shared objects file] 
[Loaded java.util.concurrent.locks.Lock from shared objects file] 
[Loaded java.util.concurrent.locks.ReentrantLock from shared objects file] 
[Loaded java.util.concurrent.ConcurrentHashMap$Segment from shared objects file] 
[Loaded java.util.concurrent.locks.AbstractOwnableSynchronizer from shared objects file] 
[Loaded java.util.concurrent.locks.AbstractQueuedSynchronizer from shared objects file] 
[Loaded java.util.concurrent.locks.ReentrantLock$Sync from shared objects file] 
[Loaded java.util.concurrent.locks.ReentrantLock$NonfairSync from shared objects file] 
[Loaded java.util.concurrent.locks.AbstractQueuedSynchronizer$Node from shared objects file] 
[Loaded java.util.concurrent.ConcurrentHashMap$HashEntry from shared objects file] 
[Loaded java.lang.CharacterDataLatin1 from shared objects file] 
[Loaded java.io.ObjectStreamClass from shared objects file] 
[Loaded sun.net.www.ParseUtil from shared objects file] 
[Loaded java.util.BitSet from shared objects file] 
[Loaded java.net.URL from shared objects file] 
[Loaded java.net.Parts from shared objects file] 
[Loaded java.net.URLStreamHandler from shared objects file] 
[Loaded sun.net.www.protocol.file.Handler from shared objects file] 
[Loaded java.util.HashSet from shared objects file] 
[Loaded sun.misc.URLClassPath from shared objects file] 
[Loaded sun.net.www.protocol.jar.Handler from shared objects file] 
[Loaded sun.misc.Launcher$AppClassLoader from shared objects file] 
[Loaded sun.misc.Launcher$AppClassLoader$1 from shared objects file] 
[Loaded java.lang.SystemClassLoaderAction from shared objects file] 
[Loaded java.lang.StringCoding from shared objects file] 
[Loaded java.lang.ThreadLocal$ThreadLocalMap from shared objects file] 
[Loaded java.lang.ThreadLocal$ThreadLocalMap$Entry from shared objects file] 
[Loaded java.lang.StringCoding$StringDecoder from shared objects file] 
[Loaded java.net.URLClassLoader$1 from shared objects file] 
[Loaded sun.misc.URLClassPath$3 from shared objects file] 
[Loaded sun.misc.URLClassPath$Loader from shared objects file] 
[Loaded sun.misc.URLClassPath$JarLoader from shared objects file] 
[Loaded java.security.PrivilegedActionException from shared objects file] 
[Loaded sun.misc.URLClassPath$FileLoader from shared objects file] 
[Loaded sun.misc.Resource from shared objects file] 
[Loaded sun.misc.URLClassPath$FileLoader$1 from shared objects file] 
[Loaded sun.nio.ByteBuffered from shared objects file] 
[Loaded java.security.CodeSource from shared objects file] 
[Loaded java.security.PermissionCollection from shared objects file] 
[Loaded java.security.Permissions from shared objects file] 
[Loaded java.net.URLConnection from shared objects file] 
[Loaded sun.net.www.URLConnection from shared objects file] 
[Loaded sun.net.www.protocol.file.FileURLConnection from shared objects file] 
[Loaded java.net.ContentHandler from shared objects file] 
[Loaded java.net.UnknownContentHandler from shared objects file] 
[Loaded sun.net.www.MessageHeader from shared objects file] 
[Loaded java.io.FilePermission from shared objects file] 
[Loaded java.io.FilePermission$1 from shared objects file] 
[Loaded java.security.Policy from shared objects file] 
[Loaded sun.security.provider.PolicyFile from shared objects file] 
[Loaded java.security.Policy$UnsupportedEmptyCollection from shared objects file] 
[Loaded java.io.FilePermissionCollection from shared objects file] 
[Loaded java.security.AllPermission from shared objects file] 
[Loaded java.security.UnresolvedPermission from shared objects file] 
[Loaded java.security.BasicPermissionCollection from shared objects file] 
[Loaded java.security.Principal from shared objects file] 
[Loaded java.security.cert.Certificate from shared objects file] 
[Loaded ServidorTCP from file:/C:/Users/administrador/Documents/] 
[Loaded java.lang.IndexOutOfBoundsException from shared objects file] 
[Loaded java.lang.ArrayIndexOutOfBoundsException from shared objects file] 

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
    at ServidorTCP.main(ServidorTCP.java:21) 

[Loaded java.util.AbstractList$Itr from shared objects file] 
[Loaded java.util.IdentityHashMap$KeySet from shared objects file] 
[Loaded java.util.IdentityHashMap$IdentityHashMapIterator from shared objects file] 
[Loaded java.util.IdentityHashMap$KeyIterator from shared objects file] 
[Loaded java.io.DeleteOnExitHook from shared objects file] 
[Loaded java.util.LinkedHashSet from shared objects file] 
[Loaded java.util.HashMap$KeySet from shared objects file] 
[Loaded java.util.LinkedHashMap$LinkedHashIterator from shared objects file] 
[Loaded java.util.LinkedHashMap$KeyIterator from shared objects file] 

Process completed. 
+1

Ich habe Ihren Code ein wenig bearbeitet und ihn in einen Codeblock gepackt. Dies ist möglicherweise nicht genau das, was Sie wollen, aber es ist besser, als durch mehrere Seiten Code scrollen zu müssen. Wenn Sie ein Snippet veröffentlichen, schreiben Sie es zuerst, markieren Sie es im Textbereich und klicken Sie auf das kleine Symbol mit 1s und 0s. Dies wird es in einen besser lesbaren Codeblock einbinden. – bedwyr

+1

Ich formatierte den Code und legte ihn in einen Codeblock. @bedwyr, ich hoffe ich bin nicht auf deine Änderungen getreten. – grieve

+0

@grieve, lol - keine Sorgen. Das ist viel besser... – bedwyr

Antwort

10

Sie müssen die Portnummer in der Befehlszeile angeben.

Es ist immer nützlich zu wissen, wie man die Protokolle liest.

Siehe. In Ihren Protokollen haben Sie eine Reihe von Klassennamen, aber es gibt nur einen, um Ihren Code bezogen werden:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
    at ServidorTCP.main(ServidorTCP.java:21) 

Der Rest von ihnen sind alle über java.lang, java.util, java.io, etc, Klassen dass du nicht codiert hast.

Wenn Sie an dieser Fehlerzeile aussehen heißt es:

java.lang.ArrayIndexOutOfBoundsException: 

Das bedeutet, dass Sie einen Array aus seinen Grenzen zuzugreifen versucht. Das heißt, wenn die Array-Größe 5 ist, haben Sie wahrscheinlich versucht, auf das 6. Element zuzugreifen. Das ist illegal, das ist eine Ausnahme (formalerweise eine RuntimeException, was bedeutet, dass Sie einen Programmierfehler haben)

Dann fügt das Protokoll Informationen hinzu, wo das passiert ist.

at ServidorTCP.main(ServidorTCP.java:21) 

In der Klasse ServidorTCP (in Java-Datei ServidorTCP in Zeile 21.

Sie einen Blick auf diese Zeile zu dieser Datei nehmen kann, ist es das, was es zeigt:

20: // args [0] is the port number to be heard 
21: int puerto = new Integer(args[0]).intValue(); 

, der sagt Der Wert der Variablen "puerto" ist ein neuer Integer, der mit dem Inhalt erstellt wurde. args [0] Das ist das erste Element des args-Arrays.

Dieses Array ist in der Hauptmethode definiert:

public static void main(String args[]){ 

Und automatisch mit den Befehlszeilenargumenten gefüllt.

Also, wenn Sie Ihr Programm ohne Angabe eines Arguments lief die Suche von Index 0 in den Array Args fehlschlagen.

Ich weiß nicht genau, wo in jcreator Sie Befehlszeilenargumente hinzufügen können, aber ich bin ziemlich sicher irgendwo in einem "Ausführen" -Menü, oder in der "Ausführen" -Konfiguration oder so etwas, sollte etwas sein wie „Programmargumente“ Sie können diesen Wert mit einer Portnummer füllen, versuchen 8085.

mit OR

Sie können auch die Linie 21 des Servers ändern und initialisieren es wie folgt aus:

//int puerto = new Integer(args[0]).intValue(); 
int puerto = 8085; // por mis pistolas :) 

Und sieh es laufen.

Espero ist auf der Bühne.

Chau!

9

Klingt so, als würden Sie beim Starten des Servers keine Befehlszeilenargumente eingeben. Mit anderen Worten, laufen Sie so etwas wie:

java -cp . ServidorTCP 

wenn Sie

java -cp . ServidorTCP 40000 

läuft (starten Sie den Server auf Port 40000)

Wenn Sie beginnen, das Programm sollte In der IDE müssen Sie herausfinden, wie Argumente übergeben werden, wenn das Programm gestartet wird.

4

Da es eine ArrayIndexOutOfBounds-Ausnahme ist, würde ich beginnen, wo Sie Arrays verwenden. Also, in Ihrem Fall, wo Sie versuchen, die Port-Nummer aus dem Array von Argumenten zu greifen. Sehen Sie sich das zuerst an und stellen Sie sicher, dass Sie eine Portnummer als Befehlszeilenargument übergeben.

3

Schauen Sie die Signatur Ihrer Methode main():

 
public static void main(String args[]) 

Der Fehler ist hier:

 
int puerto = new Integer(args[0]).intValue(); 

Wenn Sie Ihr Programm aufrufen, indem Sie keine Argumente zu übergeben, es werde versuchen, eine lesen Ganzzahl aus einem Array, das tatsächlich leer ist.

Wenn Sie nicht wollen, um Parameter kümmern, tun gerade dies:

 
int arguments = new Integer (args.length); 

if (arguments = 0) { 
    this.puerto = 4000; 
} 

, die den Job tun sollten. Wenn keine Argumente übergeben werden, wird der Port 4000 (oder der von Ihnen gewählte Port) als Standardport angenommen.

Verwandte Themen