The Richard Stevens' "Unix network programming" book described a TCP
server (tcpcliserv04.c) and client (tcpcli04.c). I compiled and
executed them successfully as follows:
$ tcpcliserv04 &
$ tcpcli04 172.20.11.211
12
12
90
90
I start to write a java socket client program but it fail to connect.
Please help.
Thanks.
import java.net.*;
import java.io.*;
public class socketClientWriteRead
{
public static final int PORT = 9877;
public static void main(String[] args) throws IOException
{
String host = "";
if (args.length >= 1)
host = args[0];
//String host = args[0];
byte[] bytes = new byte[1024];
int len = 0;
int ch = 0;
Socket sock = new Socket(host, PORT);
InputStream in = sock.getInputStream();
OutputStream out = sock.getOutputStream();
System.out.println( "Hello World!" );
while (len > 0 || ch != -1) {
if ((len = in.read(bytes)) > 0)
System.out.write(bytes, 0, len);
if ((ch = System.in.read()) != -1)
out.write(ch);
} // while
in.close();
out.close();
}
}
$ java socketClientWriteRead 172.20.11.66
Exception in thread "main" java.net.ConnectException: Connection
refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:
333)
at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:518)
at java.net.Socket.connect(Socket.java:468)
at java.net.Socket.<init>(Socket.java:365)
at java.net.Socket.<init>(Socket.java:179)
at socketClientWriteRead.main(socketClientWriteRead.java:18)
> I want to make a java TCP socket client to communicate with a TCP
> server socket on linux.
> Are there some sample C unix server and java client socket programs
> available?
>
> The Richard Stevens' "Unix network programming" book described a TCP
> server (tcpcliserv04.c) and client (tcpcli04.c). I compiled and
> executed them successfully as follows:
>
> $ tcpcliserv04 &
> $ tcpcli04 172.20.11.211
[snip]
>
> $ java socketClientWriteRead 172.20.11.66
Did you mean to connect to a different server with the Java client?
The error below means that the server refused the connection, usually because
there is nothing listening on the requested port.
> Exception in thread "main" java.net.ConnectException: Connection
> refused
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:
> 333)
> at
> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
> at java.net.Socket.connect(Socket.java:518)
> at java.net.Socket.connect(Socket.java:468)
> at java.net.Socket.<init>(Socket.java:365)
> at java.net.Socket.<init>(Socket.java:179)
> at socketClientWriteRead.main(socketClientWriteRead.java:18)
--
Nigel Wade
Can you "telnet 172.20.11.211 9877" ?
Did you remember to pass the port number in network byte order
in the bind() call on the server?
--
Andrew Gabriel
[email address is not usable -- followup in the newsgroup]
It is a typo. It should be:
java socketClientWriteRead 172.20.11.211
Thanks.
On which port your server is listening ?
On which port your client is trying to connect to server ?
Your client program seems fine (it's working OK here at least) - as long
as the server (actually called tcpserv04 in the books's provided source
code?) is still alive then you shouldn't have any problem connecting.