Java - Problema al crear un socket

 
Vista:

Problema al crear un socket

Publicado por Jose Luis (24 intervenciones) el 30/04/2001 15:40:23
Cuando con el cliente intento acceder al servidor se me queda colgado creando el socket, yo le paso la direccion ip del servidor y el puerto 5000 que es el del servidor, agradeceria mucho que alguien me ayudara a veriguiar porque pasa esto y como podria resolverlo, a continuacion anexo un fragmento del codigo.

//////// SERVIDOR /////////////////////
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.awt.Toolkit;
import java.awt.EventQueue;
import java.util.*;
import java.lang.String;

class MotorServer extends Frame implements ActionListener{

final int port=5000;
...
private ServerSocket serverSocket=null;

public MotorServer()
{
super("Motor Server");
makeGUI();

}

public void makeGUI()
{
IniciarServidorItem=new MenuItem("Iniciar Servidor");
IniciarServidorItem.setEnabled(true);
IniciarServidorItem.addActionListener(this);
fileMenu1.add(IniciarServidorItem);
}

public void actionPerformed(ActionEvent event)
{
if(event.getSource()==IniciarServidorItem){
try{
serverSocket=new ServerSocket(port);
}catch (IOException e){
System.out.println("Could not listen on port:"+port+","+e);
System.exit(1);
}
...

}


//////// CLIENTE /////////////////////

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;%0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema al crear un socket

Publicado por Adrian (8 intervenciones) el 30/04/2001 17:39:35
Se te queda colgado porque estás creando no un socket cliente sino uno servidor.
El socket cliente no puede ser del tipo ServerSocket sino sockect únicamente.
Te paso un ejemplo:
Leer y Escribir a través de un Socket
El siguiente programa es un ejemplo sencillo de cómo establecer una conexión entre un programa cliente y otro servidor utilizando sockets. La clase Socket del paquete java.net es una implementación independiente de la plataforma de un cliente para un enlace de comunicación de dos vías entre un cliente y un servidor. La clase Socket se sitúa en la parte superior de una implementación dependiente de la plataforma, ocultando los detalles de los sistemas particulares a un programa Java. Utilizando la clase java.net.Socket en lugar de tratar con código nativo, los programas Java pueden comunicarse a través de la red de una forma independiente de la plataforma.
Este programa cliente, EchoTest, conecta con el Echo del servidor (en el port 7) mediante un socket. El cliente lee y escribe a través del socket. EchoTest envía todo el texto tecleado en su entrada estandard al Echo del servidor, escribiendole el texto al socket. El servidor repite todos los caracteres recibidos en su entrada desde el cliente de vuelta a través del socket al cliente. El programa cliente lee y muestra los datos pasados de vuelta desde el servidor.

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

public class EchoTest {
public static void main(String[] args) {
Socket echoSocket = null;
DataOutputStream os = null;
DataInputStream is = null;
DataInputStream stdIn = new DataInputStream(System.in);

try {
e
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ahora si

Publicado por Adrian (8 intervenciones) el 30/04/2001 17:41:07
import java.io.*;
import java.net.*;

public class EchoTest {
public static void main(String[] args) {
Socket echoSocket = null;
DataOutputStream os = null;
DataInputStream is = null;
DataInputStream stdIn = new DataInputStream(System.in);

try {
echoSocket = new Socket("taranis", 7);
os = new DataOutputStream(echoSocket.getOutputStream());
is = new DataInputStream(echoSocket.getInputStream());
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis");
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to: taranis");
}

if (echoSocket != null && os != null && is != null) {
try {
String userInput;

while ((userInput = stdIn.readLine()) != null) {
os.writeBytes(userInput);
os.writeByte('\n');
System.out.println("echo: " + is.readLine());
}
os.close();
is.close();
echoSocket.close();
} catch (IOException e) {
System.err.println("I/O failed on the connection to: taranis");
}
}
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar