This code in notepadd ++ worked because the command line added example port 5000,6000 etc. But netbeans can not do that. So I have the client and server code here. Exchange of messages,
ClientTCP.java:
import java.io.*;
import java.net.*;
public class ClienteTCP {
public static void main(String argv[])
{
try
{
// criação do socket TCP de ligação ao servidor, o 1º argumento
// é o nome da máquina, o 2º é o número do porto
Socket sd = new Socket(InetAddress.getByName(argv[0]),(new Integer(argv[1])).intValue());
// obtenção dos canais de leitura e escrita do socket
InputStream in = sd.getInputStream();
OutputStream out = sd.getOutputStream();
// criação do buffer para envio e recepção de informação
byte[] buffer = new byte[1024];
for (;;) {
// pede a mensagem ao utilizador
System.out.print("Introduza a mensagem: ");
System.out.flush();
int length = System.in.read(buffer);
// envia ao servidor o buffer através do outputstream
out.write(buffer, 0, length);
out.flush();
// se premiu return, fecho da ligação
if (length == 1) break;
// leitura da mensagem ecoada pelo servidor
length = in.read(buffer);
System.out.println(new String(buffer,0,0,length));
}
} catch (IOException e)
{
// Surgiu algum problema com a ligação ao socket
System.out.println(e.toString());
}
System.out.println("ligação fechada");
}
}
SimpleServer.java:
import java.io.*;
import java.net.*;
public class ServidorSimples {
/**
* @param argv the command line arguments
*/
public static void main(String argv[])
{
// obtem o número do porto da linha de comandos. Se não for especificado
// um porto o sistema operativo vai escolher automaticamenteum (porto 0)
int listenPort= (argv.length == 0) ? 0 : (new Integer(argv[0])).intValue();
ServerSocket SocketEscuta= null;
InputStream in= null;
OutputStream out= null;
Socket s= null;
try
{
SocketEscuta = new ServerSocket(listenPort);
s = SocketEscuta.accept();
System.out.println("Ligação estabelecida");
// criação do buffer para receber informação
byte[] buffer = new byte[1024];
// obtenção dos canais de leitura e escrita para o novo
// socket estabelecido
in = s.getInputStream();
out = s.getOutputStream();
for (;;)
{
// Leitura da informação do socket
int length = in.read(buffer);
// se apenas return foi lido, fecha a ligação
if (length == 1) break;
// escreve a mensagem no ecrã e devolve-a ao cliente
System.out.println(new String(buffer,0,0,length));
out.write(buffer,0,length);
}
} catch (IOException e)
{
// Ocorreu algum problema na recepção ou envio de informação
System.out.println(e.toString());
}
System.out.println("Ligação fechada");
}
}
My question and run the program on netbeans It gives error in this line: Socket sd = new Socket (InetAddress.getByName (argv [0]), (new Integer (argv [1]). IntValue ());
It seems that netbeans does not allow you to choose the port.
No notepadd ++: javac SimpleServer.java java SimpleServer 1234
New Client Window: java ClientTCP localhost 1234
And it works!
but wanted netbeans to allow you to choose the port type this: connection = new Socket (InetAddress.getByName ("localhost"), 5320);
or this server = new ServerSocket (5320.2);
but change so that it works in the client code line 12:
Here is a link with similar questions: link Anyway my code differs a bit. But the line is the same.